上位机图像处理和嵌入式模块部署(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就行,这都问题不大。真的遇到问题了,反而是自己学习的机会。

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

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

相关文章

Flutter 中的 LicensePage 小部件:全面指南

Flutter 中的 LicensePage 小部件:全面指南 在软件开发中,遵守开源许可证的要求是至关重要的。Flutter 提供了一个内置的 LicensePage 小部件,它用于展示应用中使用的所有开源库的许可证信息。本文将为您提供一个全面的指南,帮助…

git commit 规范

在提交代码时标识本次提交的属性 feat: 新功能(feature) fix: 修补bug docs: 文档(documentation) style: 格式(不影响代码运行的变动) refactor: 重构(即不是新增功能,也不是修改b…

热爱无解 少年万丈光芒!首席艺人【彭禹锦】登陆第八季完美童模全球赛

2024年7月,一档由IPA模特委员会创办于2017年的王牌少儿模特大赛即将拉开全球总决赛的帷幕!作为家喻户晓的国民赛事——完美童模曾6季荣获CCTV央视新闻报道,以创意引领、美学引领、和兼具文化底蕴的赛事特色,收获了全球百万亲子家庭的喜爱。20…

深度学习之基于Pytorch+Flask Web框架预测手写数字

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着人工智能和深度学习的快速发展,手写数字识别已成为一个重要的应用领域。该项目…

Python 实现批量文件重命名工具

在现代软件开发中,图形用户界面 (GUI) 工具的创建是一个常见需求。对于那些需要频繁处理文件的任务,拥有一个简便的 GUI 工具尤为重要。在这篇博客中,我们将介绍如何使用 wxPython 创建一个简单的批量文件重命名工具。该工具可以选择一个文件…

判断子序列二刷

文章目录 1、描述2、思路3、notes4、复杂度 1、描述 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长&#xff08;长度 ~ 500,000&#xff09;&#xff0c;而 s 是个短字符串&#xff08;长度 <1…

Web开发——HTMLCSS

1、概述 Web开发分前端开发和后端开发&#xff0c;前端开发负责展示数据&#xff0c;后端开发负责处理数据。 HTML&CSS是浏览器数据展示相关的内容。 1&#xff09;网页的组成部分 文字、图片、音频、视频、超链接、表格等等 2&#xff09;网页背后的本质 程序员写的前端…

重大活动网络安全保障建设及运营指南

在当今高度数字化的社会中&#xff0c;各类重大活动如会议、展览、赛事及庆典等正面临着日益复杂和严峻的网络安全威胁。这些威胁不限于网络入侵或数据泄露&#xff0c;更涉及到对基础设施、关键信息系统和公众舆论的复杂攻击&#xff0c;需要国际社会的密切合作和长期关注。因…

一张图看懂大模型性价比:能力、价格、并发量全面PK

最近&#xff0c;国内云厂商的大模型掀起一场降价风暴。火山引擎、阿里云、百度云等纷纷宣布降价&#xff0c;部分模型价格降幅据称高达99%&#xff0c;甚至还有些模型直接免费。 五花八门的降价话术&#xff0c;一眼望去遍地黄金。但事实真的如此吗&#xff1f;今天我们就拨开…

统计信号处理基础 习题解答10-2

题目 两个随机变量x和y&#xff0c;如果联合PDF分解为&#xff1a; 那么称他们为条件独立的。在上式中z是条件随机变量。 我们观察 其中, , 是相互独立的。证明和是条件独立的。给出条件变量是A。和是无条件独立么&#xff1f;也就是 成立么&#xff1f;为了回答这个问题&…

如何使用jmap工具生成堆内存快照

1、确保已安装JDK&#xff1a; 首先&#xff0c;确保你的系统上安装了Java Development Kit (JDK)。 2、找到Java进程的PID&#xff1a; 你需要知道你想要生成堆内存快照的Java进程的进程ID&#xff08;PID&#xff09;。你可以使用命令行工具如ps&#xff08;在Unix/Linux系…

Redis Cluster 集群搭建

1. 安装 Redis sudo apt-get update sudo apt-get install redis-server2. 创建配置文件 为每个 Redis 实例创建独立的配置文件和数据目录&#xff1a; mkdir -p /usr/local/redis-cluster/{7000,7001,7002,7003,7004,7005}3. 配置文件内容 每个 Redis 实例的配置文件内容如…

秋招突击——算法打卡——5/24——两数之和

题目描述 实现代码 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int addNumber 0;// 表示进位ListNode* res ListNode();ListNode* curNode res;while(l1 && l2){curNode.value (l1.value l2.value addNumber) % 10 addNumber (l1.value l2.value…

python3序列化模块之pickle

官方文档 简介 pickle 是 Python 中用于对象序列化和反序列化的标准库模块。它可以将 Python 对象转换为字节流,并将其保存到文件或通过网络传输,在需要时再将其恢复为原来的 Python 对象。 模块 pickle 实现了对一个 Python 对象结构的二进制序列化和反序列化。 “pickling…

如何快速增加外链?

要快速增加外链并不难&#xff0c;相信各位都知道&#xff0c;难的是快速增加外链且没有风险&#xff0c;所以这时候GNB外链的重要性就出现了&#xff0c;这是一种自然的外链&#xff0c;何谓自然的外链&#xff0c;在谷歌的体系当中&#xff0c;自然外链指的就是其他网站资源给…

mysql 、oss 结合使用

以下是一个使用 Express、MySQL、OSS 和 axios 的 Node.js 示例。这个示例创建了一个 Express 服务器&#xff0c;该服务器有一个路由用于处理视频上传的请求。视频文件首先被上传到 OSS&#xff0c;然后视频的 OSS URL 被存储到 MySQL 数据库。 首先&#xff0c;我们需要安装必…

最大负载1kg!高度模块化设计!大象机器人智能遥控操作机械臂组合myArm MC

引入 近年来&#xff0c;市面上涌现了许多类似于斯坦福大学的 Alopha 机器人项目&#xff0c;这些项目主要通过模仿人类的运动轨迹来进行学习&#xff0c;实现了仿人类的人工智能。Alopha 机器人通过先进的算法和传感技术&#xff0c;能够精确复制人类的动作&#xff0c;并从中…

【stm32】——使用HAL库点灯

目录 一、安装STM32CubeMX 二、HAL库点亮LED灯 1.STM32CubeMX创建项目 2.进入Keil编写代码 三、采用中断控制LED灯的亮灭 1.创建项目 2.Keil中编写代码 四、Keil波形分析 总结 一、安装STM32CubeMX 具体操作可以参考下面链接&#xff1a; 搭建STM32开发环境——STM32CubeMX&a…

用Python pynput库捕捉每一次组合键的优雅舞步

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 一、初识pynput&#xff1a;键盘与鼠标的监控利器 当谈论计算机交互时&#xff0c;键盘和鼠标无疑是最常用的设备。无论是编写代码、浏览网页还是玩游戏&#xff0c;都依赖于这些输入设备与机器沟通。但在一些特殊的…