上位机图像处理和嵌入式模块部署(f407 mcu和其他mcu品类的选择)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        很多朋友读书的时候学的是stm32,工作中用的也是stm32。这本来问题不大,但是过去两三年的经历告诉我们,mcu的使用一定要进行分散采购,不能把鸡蛋放在一个篮子里面。对于个人来说,stm32这样的经典mcu需要学习,而国产的mcu也同样需要学习,很多项目,比如说军工、央企或者的国企的项目,会指定要求国产mcu。这个时候如果我们没有对应的国产mcu预案,整体就会显得很被动。当然,不仅仅是mcu国产化的问题,还有一些其他的事情,我们可以一并讨论下。

1、熟悉不同stm32 mcu的区别

        一般用的比较多的mcu就是stm系列。103负责基础领域的应用,但是没有浮点,频率也比较低,同时没有网络mac。407系列在运动控制比较多,频率也是103的2倍多,有浮点、有网络。750系列的mcu,频率更高,可以达到480m,搭配sdram、摄像头sensor,还可以做一些图像方面的应用,openmv就是这个道理。

2、了解同系列stm32 mcu的区别

        很多情况下,我们选择mcu外设资源是够的,但是片内资源就不太够了。同样以103为例,如果我们选择的是stm32f103c8t6,它的资源只有20k ram和64k flash。一旦我们编写的代码复杂一点,这里面空间很容易就不够了。所以这个时候,一般会选择stm32f103cbt6。当然,如果不幸的是,ram也不够,那么这种情况,相同pin脚的mcu已经无法满足要求了,只能重新找一个新的103芯片了。厂家一般都会提供类似下面这张表,大家可以灵活选择。

3、国产mcu的选择

        目前为止,我尝试使用了3款国产mcu,分别是沁恒wch、普冉puya和广芯微。整体用下来效果还是可以的,这也许是因为自己只用了数字电路部分的原因。只需要安装keil软件,加上各个厂家的pack包和示例代码,mcu这部分上手其实还是比较容易的。如果操作比较快的话,基本上1-2h就可以开始干活了。只要克服了心里上的顾虑,剩下来的问题其实并不大。毕竟,大部分厂家的mcu示例代码,基本上和stm32是一样的。

4、三种烧录方式最好都要学会

        大部分同学学习mcu的时候,一般都是通过某原子、某火的开发板来学习的。用的烧录方式就是dap。但是一旦涉及到其他品牌的mcu,特别是国产的mcu,则有可能是st-link v2,也有可能是j-link。特别是j-link,这是用的比较多的烧录方式,建议大家可以自己买一个j-link仿真器,使用上面也不是很复杂。自己平时三种仿真器都准备下,这样不管遇到那种情况,都能灵活应对。

        对于某些特殊的下载方法,到时候购买特定的仿真器就好了。

5、arm vs risc-v

        不是所有的mcu都是arm系列的,这里面沁恒wch的ch32v307系列的mcu,本身的cpu就是risc-v。它使用的编译器是mounriver,调试器是wch-link调试器。使用上面基本上没有什么差别。ch32v307vct6本身集成了高速usb和eth phy,同价位的mcu,这是很大的一个优势,所以实际使用的场景还是非常多的。有兴趣的同学可以去好好测试下。

6、让我们自己的业务代码解耦特定的mcu

        现在的mcu很多,不管是进口的还是国产的,这就要求我们在编写代码的时候,要脱离具体mcu的束缚。不管是中间件的代码,还是业务的代码,都要实现和mcu之间的解耦。这样,一旦因为供应、或者是成本的考量,需要替换mcu的时候,我们的软件可以很容易port到其他mcu上面。

        另外,这也提示我们,对mcu的熟悉和掌握,这不是我们的核心竞争力。我们自己的优势,应该是怎么把mcu和具体的业务绑定在一起,并且提供有高性价比的嵌入式产品,这才是我们应该努力的方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AngularJS 表单

AngularJS 表单 AngularJS 是一个由 Google 维护的开源前端框架,它允许开发者使用 HTML 作为模板语言,并扩展 HTML 的语法,以清晰简洁地表达应用的组件。AngularJS 的核心特性之一是双向数据绑定,这极大地简化了 DOM 操作和事件处理。在 AngularJS 中,表单处理是一个重要…

EntitiesSample_12. FixedTimestep

示例的知识点 1.标签[UpdateInGroup(typeof(FixedStepSimulationSystemGroup))] 这个系统标签标识这,系统在FixedStepSimulationSystemGroup这个组里面执行更新逻辑,FixedStepSimulationSystemGroup是一个固定真速度的仿真系统组 2.给实体身上的组件…

【设计模式】行为型设计模式之 职责链模式,探究过滤器、拦截器、Mybatis插件的底层原理

一、介绍 职责链模式在开发场景中经常被用到,例如框架的过滤器、拦截器、还有 Netty 的编解码器等都是典型的职责链模式的应用。 标准定义 GOF 定义:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求,将这些接收对象…

匹配算法 python

1. 基于特征的匹配算法 1.1 SIFT(Scale-Invariant Feature Transform) SIFT 是一种在尺度和旋转上不变的特征点检测算法,常用于图像匹配。 步骤: 关键点检测:检测图像中的关键点,利用高斯差分&#xff…

智能合约中断言失败

断言失败: 断言(assert)在智能合约中用于确保内部逻辑的一致性和正确性,但如果使用不当,确实可能导致意外的合约终止或资金锁定。这是因为assert主要用于检测程序内部的错误,例如算法错误或逻辑错误&#…

k8s小型实验模拟

(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。(5分) (2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPat…

邬家桥公园

文|随意的风 原文地址 我游览过现存规模最大、保存最完整的皇家园林颐和园,瞻仰过拥有世界上最大祭天建筑群的天坛公园,那都是多年前的事情了。 邬家桥公园相比颐和园、天坛公园,气势雄伟倒谈不上。它没有西湖的水平如镜&#xff…

Java | Leetcode Java题解之第139题单词拆分

题目&#xff1a; 题解&#xff1a; public class Solution {public boolean wordBreak(String s, List<String> wordDict) {Set<String> wordDictSet new HashSet(wordDict);boolean[] dp new boolean[s.length() 1];dp[0] true;for (int i 1; i < s.len…

TCP和UDP通信中如何处理并发冲突

在处理TCP和UDP通信中的并发冲突时&#xff0c;我们可以采取多种策略来确保数据的准确传输和系统的稳定性。以下是对TCP和UDP在并发冲突处理方面的详细分析&#xff1a; TCP通信中的并发处理 TCP是一种面向连接的传输层协议&#xff0c;它通过建立可靠的连接来保证数据的完整…

JimuReport 积木报表 v1.7.52 版本发布,免费的低代码报表

项目介绍 一款免费的数据可视化报表工具&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完…

智能变电站网络报文记录及故障录波分析装置

是基于Intel X86、PowerPC、FPGA等技术的高度集成化的硬件平台&#xff0c;采用了高性能CPU无风扇散热、网络数据采集、高速数据压缩存储加密等多种技术&#xff0c;实现了高性能计算、多端口同步高速数据采集、数据实时分析、大容量数据存储等功能。 ● 在满足工业标准的同时&…

数据结构 -- 树状数组

前言 树状数组或二叉索引树&#xff08;Binary Indexed Tree&#xff09;&#xff0c;又以其发明者命名为 Fenwick 树。其初衷是解决数据压缩里的累积频率的计算问题&#xff0c;现多用于高效计算数列的前缀和、区间和。它可以以 O(logn) 的时间得到任意前缀和。并同时支持在 …

Kali Linux 2024.2 释出

渗透测试发行版 Kali Linux 释出了最新的 2024.2。 主要新特性包括&#xff1a;桌面环境更新到 GNOME 46&#xff0c;Xfce 环境加入 HiDPI 模式&#xff0c;更新了网络侦察工具 AutoRecon&#xff0c;监视 Linux 进程的命令行工具 pspy&#xff0c;提取和显示 CVE 信息的 Splo…

项目验收总体计划书(实际项目验收原件参考Word)

测试目标&#xff1a;确保项目的需求分析说明书中的所有功能需求都已实现&#xff0c;且能正常运行&#xff1b;确保项目的业务流程符合用户和产品设计要求&#xff1b;确保项目的界面美观、风格一致、易学习、易操作、易理解。 软件全套文档过去进主页。 一、 前言 &#xff0…

WHAT - 富文本编辑器系列(二)- 表情包面板

目录 一、背景二、实践1. 安装 Tiptap2. 创建表情包面板组件3. 在 Tiptap 编辑器中集成表情包面板4. 样式调整5. 完整示例代码 三、自定义格式编码的表情1. 数据压缩和传输效率2. 兼容性和一致性3. 安全性和防篡改4. 特定功能需求5. 集成现有系统6. 示例 一、背景 在一个富文本…

day38 ● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

509. 斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;其中 …

Unity 编辑器扩展,获取目录下所有的预制件

先看演示效果 实现方案 1创建几个用于测试的cube 2&#xff0c;创建一个Editor脚本 3&#xff0c;编写脚本内容 附上源码 using UnityEditor; using UnityEngine;public class GetPrefeb : EditorWindow {private string folderPath "Assets/Resources"; // 指定预…

[FSCTF 2023]Tea_apk

得到密文和密钥 import base64 from ctypes import c_uint32import libnumDELTA 0x9E3779B9def decrypt(v, n, k):rounds 6 int(52 / n)sum c_uint32(rounds * DELTA)y v[0].valuewhile rounds > 0:e (sum.value >> 2) & 3p n - 1while p > 0:z v[p …

matlab仿真教程要点和难点以及实际应用

Matlab仿真基础教程 1. 确定问题和目标 概述:明确你要解决的问题和仿真的目标。 参考:无直接参考数字,但这是仿真流程的第一步(参考文章3)。 2. 建立数学模型 概述:根据问题和目标,建立相应的数学模型。 参考:无直接参考数字,但数学模型是仿真的基础(参考文章3)…

Django 连接mysql数据库配置

1&#xff0c;提前创建注册的app1应用 Test/Test/settings.py python manage.py startapp app1 2&#xff0c;配置mysql数据库连接 Test/Test/settings.py DATABASES {default: {ENGINE: django.db.backends.mysql,# 数据库名字NAME: db1,# 连接mysql数据库用户名USER: ro…