历史上的今天
今天是:2025年02月01日(星期六)
2021年02月01日 | 用心去学习STM32CubeMX,你会有不一样的收获
2021-02-01 来源:eefocus
这里使用STM32进行学习、开发的朋友较多。那么,STM32CubeMX可能就是大家必备的一个工具。
1写在前面
从公众号后台、微信给我留言的问题可以看得出来,使用STM32CubeMX这个工具的人有很多。
那么,使用STM32CubeMX进行配置、开发时,相信大家都需要过各种各样的问题。
我也不例外,我是15年开始使用STM32CubeMX这个工具,这些年来陆陆续续也遇到过很多问题,特别是刚开始的时候,感觉整个人都不好受。但是,好在我把遇到的问题多逐步解决了。
今天,和大家说说:如果你选择STM32作为硬件平台,你有必要学习一下STM32CubeMX这个工具。
2入门有必要选择STM32Cube HAL库开发吗?
这里我给的答案是:No
这个问题见仁见智,但是从关注我公众号的读者朋友中,我综合给出的答案是No.
原因:很多朋友的基础还是偏弱。
HAL这套库是需要有一定数据结构功底的朋友来学习。简单说,你需要对指针、结构体、回调函数等这类C语言知识有一定掌握才行。
使用过STM32Cube 进行开发的朋友都应该经历过这过问题:一旦底层有问题,去找这个问题相比SPL(标准外设库)要难得多。
当然,如果你对HAL这套库比较了解的话,其实难度也不大。
所以,我的建议是:如果你数据结构功底不好,可以先从寄存器、标准外设库开始,当你基础知识累计一定程度,可以转向STM32Cube HAL开发。
3有必要学习一下STM32CubeMX
当然,上面给出的入门建议不是说不鼓励大家去学习一下STM32CubeMX。这节说的就是你有必要学习一下STM32CubeMX。
学习STM32CubeMX的目的:你会有意想不到的收获。
上面我说了,我也是踩了很多坑过来的,但一路过来,我发现其实我收获还蛮大的。
包括很多基础的问题,可能你之前从来没了解过。这里也罗列一些问的较多的问题吧。
1.中文路径
在生成MDK-ARM工程时,中文路径会出错:
看英文提示:在...路径下生成工程出现错误。
2.自己写的代码,重新生成会被删除
这里需要进行配置,并且你的代码需要在指定位置(BEGIN --- END内)。


这样,当你重新生成工程时,这些代码就不会被删除。
3.警告
这里看一下提示就知道:大概意思就是多了一个括号。
4.__weak弱定义

很多朋友可能之前都没有见过【__weak】这个关键字,它有“弱”的意思。
这里的意思就是说:如果你自己写一个同样的函数(HAL_UART_MspDeInit),那么,这里带有weak关键字的函数就不起作用。
还有,有朋友问:不知道工程中很多UNUSED函数是什么意思。你自己看一下注释就知道,它的为了防止编译警告,“未使用的函数”。
只要你愿意去发现问题,并解决问题,你就有收获。
4总结
1.遇到问题,看提示找问题。
几个英文单词不认识的话,翻译工具应该知道吧。久而久之你会发现有些问题都不是什么问题。
2.使用STM32CubeMX之后,你会发现你掌握了更多之前没有掌握的知识。
上面举的几个例子,相信肯定有朋友不知道的这些知识,我们学习都是一个积累的过程。
3.不要一来就问有没有捷径,遇到一点小问题都不去面对,永远没有捷径。
史海拾趣
|
各位大虾谁能给我个《plug and play system architecture》?非常感谢 各位大虾谁能给我个《plug and play system architecture》?非常感谢, 我的邮箱jerk66@163.com… 查看全部问答> |
|
EVC连接SQLCE出问题:recordset 的open方法总是提示:first—chance exception in XX.exe:0X00000f0:s EVC连接SQLCE出问题:recordset 的open方法总是提示:first—chance exception in XX.exe:0X00000f0:stack overflow。 程序如下 CVOConnection* m_Conn; CVO ...… 查看全部问答> |
|
问一下MSP430f42xx里的SAD( Sigma-Delta A/D)怎么用啊? 本帖最后由 paulhyde 于 2014-9-15 09:44 编辑 Sigma-Delta A/D 原理基本不懂····和逐次比较的有什么不同?还有怎样操作它? … 查看全部问答> |
|
0 引言 在现场测控系统中,RTU(远程测控终端)存储容量、存储数据的转移问题始终是RTU的重要环节。RTU的存储容量一般为几十K~几百K字节,数据转移通常采用不掉电静态RAM、EEPROM存储模块,或采用便携式计算机通过串行口读取RTU数据。 ...… 查看全部问答> |
|
最近在学习launchpad,中断方面困难重重。。。我想实现这样一个功能:P1.1设为输入,连接一个按键,然后利用中断判断按键按下的时间,要是短按的话就LED1翻转,长按的话LED2翻转。这样的话,我知道应该用捕获模式获取时间信息对吧,但是实现过程一 ...… 查看全部问答> |




