上位机图像处理和嵌入式模块部署(mcu之芯片选择)

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

        目前市面上的mcu很多,有国产的,有进口的,总之种类很多。以stm32为例,这里面又包括了stm32f1、stm32f4、stm32f7。而且,很多时候,电商网站上面的开发板种类很多,有的资料很多,有的只提供基本程序,那这个时候应该怎么选择呢。结合我自己的经验,给大家参考一下。

1、选择高性价比的mcu

        很多同学上来的时候,野心很大,恨不得短时间内把所有的mcu知识点都掌握。有了这个想法,买板子的时候直接追求大而全,其实是没有必要的。我们买过来的东西,如果没有经过学习、思考,变成自己的东西,买了再多也是无益。目前mcu这部分,stm32f103系列性价比最高,核心板+st-link v2加起来也就几十块,个人觉得用来入门是比较合适的。要说其他还需要买的,最多买一个usb转ttl的模块即可。

2、第一次编译、下载很重要

        和软件直接在电脑上编译、运行不一样,mcu代码不仅需要在x86 pc上面用keil编译,还需要st-link v2下载到mcu开发板上面。因此,第一次编译成功,对于建立开发者的信心很重要。在mcu上面,一般来说,第一个程序就是点灯程序,有点类似于学习编程语言里面的hello-world。编译之后,就可以直接通过st-link v2下载了。有了这个做基础,后续就好办了。

3、下载的时候先erase一下

        我们在下载程序之后,最好养成先erase,后program的习惯。因为mcu上面的存储空间是flash,如果要对flash进行重新编程的话,最好先erase,再programe。这样几乎不会有什么编程失败的问题。一般code、read only data都是放在flash里面,stack、global data、heap都是放在sram里面,这一点需要注意下的。

4、下载程序后手动复位开发板

        很多同学第一次编程,会出现下载后,没有反应的情况。其实,这个时候我们只需要按一下复位键,mcu就可以开始运行了。但是很多同学不知道这个操作,以为自己的程序有问题,殊不知只是因为自己没有按下复位键,才导致mcu没有按照新的程序来运行。

5、尽快调通串口

        串口是mcu调试里面很重要的调试、通信方法。有了串口相当于我们知道mcu走到哪一步了,所以打通串口有着很重要的现实意义。此外,一般mcu带有多个串口,后续其他串口还可以与上位机进行数据的交互通信。找到对应的tx、rx、gnd,这一点非常重要。

6、一定要掌握中断的写法

        mcu下面很多的程序都是while(1) + interrupt的写法,所以我们需要的就是尽快写一次中断代码。这个中断可以是gpio的中断,可以是定时中断,甚至可以是uart中断,只要是中断就可以。如果是定时中断,后续甚至可以以timer为驱动,配合状态机进行应用开发。

7、慢慢掌握其他接口

        有了上面做基础,下面就可以慢慢学习其他接口了,比如说iic、iis、sdio、spi、usb和eth。同样以spi为例,这个接口可以适配的模块就更多,能实现哪些功能,很多时候取决于我们外接了哪些模块,可以拿到哪些数据。

8、开始业务的开发

        有了上面的开发做接触,下面就开始业务的开发了。当然,这中间可能还会涉及到rtos、fatfs、lwip、lvgl,不过没关系,本身用什么学什么的原则,后续就可以开始业务的开发了。简单一点,可以做数据的采集;后续做一些模块的转发;最后慢慢做一些控制和识别的东西,这样就算真正把mcu用起来了。

9、所有的相关mcu代码都可以参考

        我们买的开发板可能来源于一个人,但是其他家的程序我们也是可以参考的,无非就是改一下接口、改一下pin就行,这都问题不大。真的遇到问题了,反而是自己学习的机会。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AWS EC2 连接 AWS RDS(Mysql)

1 创建RDS数据库 点击创建数据库 引擎选项 模板 设置 连接 2 EC2连接Mysql $ sudo yum list mariadb* Installed Packages mariadb-connector-c.x86_64 3.1.13-1.amzn2023.0.3 amazonl…

飞睿智能超宽带UWB标签模组,简化设备开发流程,实时高速率数传交互应用

在科技飞速发展的今天,UWB超宽带技术因其高精度、低功耗和高安全性的特点,正逐渐成为智能设备定位和数据传输的新宠。 UWB技术是一种无线通信技术,它通过使用非常宽的频带进行数据传输,从而实现高数据传输速率和高精度定位。 飞…

远动通讯屏的原理和应用

远动通讯屏的原理和应用 远动通讯屏,是一种集显示和远程控制于一体的智能化控制设备。它可以通过网络、通信线路等方式实现与远程设备的通讯和交互,从而实现远程监控和控制。 远动通讯屏实现远程控制的核心原理是基于PLC(Programmable Logic …

彩色进度条(C语言版本)

.h文件 #include<stdio.h> #include<windows.h>#define NUM 101 #define LOAD_UP 50 #define LOAD_DOWN 60 #define SLEEP_SLOW 300 #define SLEEP_FAST 70 版本1&#xff1a;&#xff08;初始版&#xff09; //v1 #include "progress.h" int main() …

C# GetManifestResourceStream 获取项目资源为null解决方案(亲测)

GetManifestResourceStream 获取项目资源为null 使用Stream s assembly.GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName().Name resourceName) 获取资源文件&#xff0c;返回流为null&#xff0c;如图所示&#xff1a; 解决方案 设置资源文件的 属性&…

创建一个python的Django项目文件

创建一个python的Django项目文件(内含conda) 文章目录 创建一个python的Django项目文件(内含conda)前言一、conda环境的下载二、配置conda的环境变量三、激活管理环境四、下载Django五、创建Django项目文件六、启动Django文件七、用pycharm直接创建Django文件 前言 大家好,今天…

Android和flutter交互,maven库的形式导入aar包

记录遇到的问题&#xff0c;在网上找了很多资料&#xff0c;都是太泛泛了&#xff0c;使用后&#xff0c;还不能生效&#xff0c;缺少详细的说明&#xff0c;或者关键代码缺失&#xff0c;我遇到的问题用红色的标注了 导入aar包有两种模式 1.比较繁琐的&#xff0c;手动将aar…

Mac Pro中的开源虚拟机UTM安装ubuntu(Applce M1,M2芯片)(2)

第一步&#xff0c;先安装UTM 链接: https://blog.csdn.net/qq_38382925/article/details/139157877?spm1001.2014.3001.5501 1.在虚拟机上安装Ubuntu 1.1 选择第一个&#xff0c;回车 1.2 语言选择english 1.3 选择done continue: 1.4 输入名字、密码等 1.5 选择继续 1.…

正则表达式(知识总结篇)

本篇文章主要是针对初学者&#xff0c;对正则表达式的理解、作用和应用 正则表达式&#x1f31f; 一、&#x1f349;正则表达式的概述二、&#x1f349;正则表达式的语法和使用三、 &#x1f349;正则表达式的常用操作符四、&#x1f349;re库主要功能函数 一、&#x1f349;正…

ffmpeg-webrtc(metartc)给ffmpeg添加webrtc协议

这个是使用metrtc的库为ffmpeg添加webrtc传输协议&#xff0c;目前国内还有一个这样的开源项目&#xff0c;是杨成立大佬&#xff0c;大师兄他们在做&#xff0c;不过wili页面维护的不好&#xff0c;新手不知道如何使用&#xff0c;我专门对它做过介绍&#xff0c;另一篇博文&a…

Pytorch深度学习实践笔记1

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;pytorch深度学习 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

MySQL5个查询

# 总查询 EXPLAIN SELECT * FROM city; # 范围查询 EXPLAIN SELECT * from city where ID>5 and ID<20; #主键查询 EXPLAIN SELECT * from city where ID5; # 索引查询 EXPLAIN SELECT * from city where CountryCodeNLD; # 普通索引 EXPLAIn SELECT * from cit…

班组管理新篇章:打造高效沟通机制,助推团队协同发展

班组作为组织的基本单位&#xff0c;其沟通的顺畅与否直接关系到整个组织的运行效率和团队的凝聚力。建立健全的班组管理沟通机制&#xff0c;不仅是提升工作效率的关键&#xff0c;更是推动团队持续发展的核心动力。那么&#xff0c;如何建立健全的班组管理沟通机制呢&#xf…

很耐看的Go快速开发后台系统框架

序言 秉承Go语言设计思路&#xff0c;我们集成框架简单易用、扩展性好、性能优异、兼顾安全稳定&#xff0c;适合企业及初学者用来开发项目、学习。我们框架和市面上其他家设计的不同&#xff0c;简单一步做到的我们不会两步&#xff0c;框架能自动处理&#xff0c;绝不手动处…

华为云之Zabbix监控平台部署实践

华为云之Zabbix监控平台部署实践 一、本次实践介绍1.1 实践环境简介1.3 本次实践完成目标 二、 相关服务介绍2.1 华为云ECS云服务器介绍2.2 Zabbix介绍 三、环境准备工作3.1 预置实验环境3.2 查看预置环境信息 四、登录华为云4.1 登录华为云4.2 查看ECS状态4.3 连接ECS弹性云服…

API 设计超好用工具--Apifox安装

Apifox下载安装教程 Apifox简介Apifox下载Apifox安装 Apifox简介 在这个信息爆炸的时代&#xff0c;技术的快速发展让我们的生活变得更加便捷。然而&#xff0c;随之而来的是各种复杂的问题和挑战&#xff0c;尤其是在API领域。为了解决这些问题&#xff0c;我们迫切需要一个集…

【SQL国际标准】ISO/IEC 9075:2023 系列SQL的国际标准详情

目录 &#x1f30a;1. 前言 &#x1f30a;2. ISO/IEC 9075:2023 系列SQL的国际标准详情 &#x1f30a;1. 前言 ISO&#xff08;国际标准化组织&#xff0c;International Organization for Standardization&#xff09;是一个独立的、非政府间的国际组织&#xff0c;其宗旨是…

再谈毕业论文设计投机取巧之IVR自动语音服务系统设计(信息与通信工程专业A+其实不难)

目录 举个IVR例子格局打开&#xff0c;万物皆能IVR - 把《民法典》搬上IVR IVR系统其实可盐可甜。还能可圈可点。 戎马一生&#xff0c;归来依然IVR。 举个IVR例子 以下是IVR系统的一个例子。 当您拨打电话进入IVR系统。 首先检验是否为工作时间。 如是&#xff0c;您将被送入…

Android 性能为王时代SparseArray和HashMap一争高下

文章目录 一、SparseArray 源码分析1. **类定义和构造函数**2. **基本方法**2.1 put(int key, E value)2.2 get(int key)2.3 delete(int key)2.4 removeAt(int index)2.5 gc()2.6 size()2.7 keyAt(int index) 和 valueAt(int index) 3. **辅助方法**3.1 binarySearch() 二、使用…

【问题记录】QT“类型强制转换“:无法从“ATL::CString“转换为“LPCWSTR“

一&#xff0c;问题现象 环境&#xff1a;VS2019QT 报错提示&#xff1a;“类型强制转换”&#xff1a;无法从"ATL::CString"转换为"LPCWSTR" 二&#xff0c;解决方法 打开项目属性&#xff0c;设置字符集&#xff0c;如下所示&#xff1a;