STM32调试小结

       花费一个月时间玩了一下STM32,因工作原因好几年没有编程了。鉴于工作需要学习了

一下STM32固件库的编程,针对一个月的重拾编程以及程序调试工作进行总结。

       STM32开发优点:

       1.固件库大大简化开发难度,提高编程效率;

       2.固件库中各种外设程序范例详实,可以直接拿来使用;

       3.仿真器便宜,淘宝上几十元就可以搞定。本人使用以前BLE电路上的J-LINK盗版仿真器,

意该版本仿真器驱一定要注意版本。

       当时安装驱动程序搞了一下午都连接不上,使用J-LINK V6.12J才搞定。一定要注意驱动

版本不能太新,最好不要过v6.14版本

       缺点:

       1.几种工作模式切换较慢,特别是从停机模式切换到运行模式时(使用片外晶振模式)

扫描二维码关注公众号,回复: 3905068 查看本文章

的时间需要2ms到3ms,种速度特别是和蓝牙模组配合起来时,若接收蓝牙数据反映特别慢。

       2.IC内部各种外设通道已经固定分配好,不能想其他BLE IC进行灵活分配。如在调试

DMA传输I2C数据时使用固件中程序出现一堆的问题,调试过程中才发现原来自己将DMA通

道修改了。STM32的DMA通道都是已经分配好的,不像其他SOC可以灵活分配。如下图所示:


如上所示I2C_TX和I2C_RX已固定分配为DMA1中的6和7通道。纠其原因是自己懒得看参考手册。

       编程以及调试总结:

       1.在多中断时处理原则为关键性或小概率(如数据传递处理等)出现的中断设置为

高中断等级,对非关键性或大概率(如定时器或RTC中断)中断设置为低中断等级。

       2.程序的调试过程是很蛋疼的过程,秉持原则就是耐性追根溯源。要精读调试功能

所涉及到芯片资料,需要仔细比较程序中相关变量或寄存器的值是否正确,这里调试

过程中软件的使用就非常重要了(不要再懒惰,不去看手册)。


        3.keil mdk调试方法小结

        ~逻辑分析仪的仿真(没有示波器时比较有用)  

        a.设置为软件仿真。

        

       b.选择sybomls查看程序所涉及到的寄存器,或者是直接输入引脚如PORTB.0即可开始

逻辑分析仪仿真。



如上图所示中special function registers中有着所有功能设置标志位,将其将入逻辑分析仪即

可开始仿真。

       c.调试中最重要的模块,查看所有外设的寄存器功能值,依照此来进行调试即可。


d.调试过程中可以查看局部变量或全局变量的值,但有时需要查看某些指针对应的变量值,

此时可以使用memory输入地址即可直接查看。


附加备注:


USE_STDPERIPH_DRIVER宏定义为使用固件库,在头文件中包含所有外设头文件。

STM32F10X_MD宏定义为IC属于大容量器件类型。

猜你喜欢

转载自blog.csdn.net/yd4330152763132/article/details/78327673