打了多年的单片机调试断点到底应该怎么设置?


我们知道常规的断点调试是在想观察哪里的问题时就在对应的代码地址设置断点,并且一旦运行到断点位置会让程序自动暂停运行......
我们知道常规的断点调试是在想观察哪里的问题时就在对应的代码地址设置断点,并且一旦运行到断点位置会让程序自动暂停运行......
我们知道 STM32 有很多寄存器,看起来特别费劲,当然如果通过前面的直接查看寄存器值的方法确实可以观察数据,但在这里我要介绍一个特别方便的查看方式。
STM32的数据在物理上分别储存在RAM和Flash中。RAM可读可写,掉电清零。Flash可读不可写,但能掉电储存,并且一般空间比RAM大很多。
STM32单片机远比51单片机复杂,寄存器数量是它的好几倍,各种外设模块,DA、CRC、SPI、CAN、SD、CAN、TIM等等,而每一个模块可能都有单独的时钟,在使用这些模块时都要提前将时钟配置好,否则根本不能工作。
位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常常见。51 单片机中通过关键字 sbit 来实现位定义,STM32没有这样的关键字,而是通过访问位带别名区来实现。
STM32有一个代码跟踪功能,即 ITM,这个调试功能非常强大,可以替代串口输入输出功能,而且只需要占用一根 I/O 线就可以实现。当然它的好处不仅仅体现在这里,在调试嵌入式操作系统代码时你会发现相当方便。
库函数和寄存器操作的区别可能和 C 语言与汇编语言的区别差不多吧,都是跟效率有关,但有时候效率并不是唯一指标。
学单片机的大概最先、最常写的通信程序应该就是串口程序了,但是如何写出一个健壮且高效的串口接收程序呢?接下来将根据多年的开发经验教你如何编写串口接收程序。
当你用 C 语言写好你的程序之后,如果你想把它运行在 51 单片机中,那么你就要通过具备 51 内核编译能力的编译器去编译成 51 汇编代码。
随着全球晶圆缺货,ST疯狂涨价,也是时候把目光放到国产 MCU 上。