stm32是由STMicroelectronic公司开发的32位微处理器集成电路.其内核是Arm的Cortex架构.I/O口众多,功能强大.没有一个飞控系统是不可以用一个stm32解决的,如果有,那就用两个◉‿◉

1.一款实用的开发板

“工欲善其事,必先利其器”想把单片机学好,拥有一块开发板是必不可少的。很多程序仿真检查不出错误,只有烧入到开发板上才能看到对不对,某宝上面有很多,推荐STM32F103系列,性价比高、应用广泛.

https://link.zhihu.com/?target=https%3A//detail.tmall.com/item.htm%3Fspm%3Da230r.1.14.20.4a1d64acxgazYE%26id%3D600742299018%26ns%3D1%26abbucket%3D18

https://link.zhihu.com/?target=https%3A//detail.tmall.com/item.htm%3Fspm%3Da1z10.5-b.w4011-22300975877.54.589d4eae7FfSfA%26id%3D609294757420%26rn%3D98c0b8e36fab2381ca062ae1bb4756bc%26abbucket%3D19

野火和正点原子家的板子质量都可以,关键是资料很详细,对新手很友好.熟悉了STM32的使用之后自己要开发一些小玩意的时候考虑到成本可以购买最小系统板.

2.开发环境

常用的开发环境有KEIL和IAR.目前来看用KEIL的人比较多.官网下载看这里:

https://link.zhihu.com/?target=https%3A//www.keil.com/download/product/

下载之后可以直接使用,但是有内存限制,一开始前几个小程序还好,到后面LCD显示就悲催了,因为LCD的程序较大,所以一直报错,百度了好久才找到原因.直接搜索KEIL注册机,按照说明进行破解就行了.

除了KEIL,还需要下载STM32F10x_StdPeriph_Lib_V3.5.0,编程用到的库函数都来自于这个文件.

关于程序的烧录有三种方式.分别是ST-Link,J-Link和串口下载.经过这么长时间的使用,发现还是直接使用串口烧录工具mcuisp比较方便,用的频率也比较高.

然后推荐一下STM32CubeMX.通过简单的设置可以自动生成模版,妈妈再也不用担心我不会配置工程啦.

https://link.zhihu.com/?target=https%3A//www.st.com/en/development-tools/stm32cubemx.html

3.三本参考资料

《STM32 参考手册》和《Cortex-M3 权威指南》,这两个资料是学习STM32最官方,最权威的资料,但是正是因为太权威了,所以看起来有些难度,推荐《STM32 不完全手册-库函数版本 》,我基本所有程序都是参考的这个PDF,简单易懂,没有多少啰嗦的话,很适合初学者.

4.一个简单的例子

接下来开始切入真题啦:在开始学习各种寄存器、串口、花里胡哨的外设之前,不如先做一个点亮LED灯的实验.这个不需要什么基础,对着教程一步步做便可以达到最后的效果,可以参考CSDN上面一个博主的介绍:

https://link.zhihu.com/?target=https%3A//blog.csdn.net/bjbz_cxy/article/details/80081886

步骤和需要看的内容有点多,但是请花点耐心,做完这个实验不仅仅会让你更有信心,最重要的是可以建立一个基本概念印象,知道STM32的基本原理、实现过程等等.

如果看上面博主的介绍有些吃力的可以在下面下载的参考程序:

https://link.zhihu.com/?target=https%3A//pan.baidu.com/s/1c2zdIJQ

5.调试技巧

Keil可以设置寄存器来查看结果,我一般是直接编译没有错误之后直接烧录看运行情况,这样的结果更加直观而且比较方便.

关于程序:

  • 可以右键go to definition来查看各个函数的申明与定义
  • 看别人程序会看到u16,u32,uint等等代表的是无符号整数
  • 有些函数参数使用了const &是传常量引用调用,为的是提高运行效率
  • 笔记本没带回来,以上都是根据回忆写的,如有错误还请指出,其它一些以后再补充

6.更新日志:

2018/10/13完成初始的文章撰写

2020/02/10重新整理了文章架构,加入了CubeMX和调试技巧内容.增加了文件资源的链接.