
常见问题STM32主函数执行三次 在编写STM32程序时发现,主函数中没有循环,但是程序自动运行了3次,查找资料,最后得以解决。
嵌入式软件不同于PC机下编程,PC下写C语言从main函数返回的话,是会返回操作系统的,所以不会出错。而对于裸机不应该退出MAIN函数,不然会出现错误,这种错误叫with no expectation of returning。
如果不需要循环,也要在最后加上
烧录进STM32,STM32就自动运行 原因 在设置中,选择了自动运行。
点击魔法棒 - >点击Debug - >点击右上角的Settings->选择Flash Download->取消Reset and …
原因 可能是不小心更改了Flash 起始地址
点击魔法棒 - >Target->更改IROM1后面地址为0x08000000
无法使用strncmp与strcmp 原因 没有引用对应头文件
添加
对比两个字符数组的 前n位是否一样 我们在开发中肯定使用过strcmp(s1,s2),用来对比字符串s1和s2是否一致。但有时候,我们并不需要对比整个数组,而只需要对比前n位是否一致,这时候我们可以使用:strncmp(s1,s2,n)函数。 strncmp(s1,s2,n)函数是两个函数比较前n个字符的大小,在前n个字符中比较规则与strcmp函数相同,如果两个字符串相等,结果为0;如果前一个字符串大于第二个,结果为正整数;如果前一个小于第二个,结果为负整数; strncmp函数是指定比较size个字符,strcmp函数比较整个字符,直到出现不同的字符或遇"\0"为止,最后一个’\0‘也要比较。
我们在开发中,经常会使用到uint32_t( u32)、 uint16_t( u16)、uint8_t( u8)的相互转换。
软件复位 有时,我们在编写程序时,遇到一些特殊情况需要复位,但是并不是任何时候我们都可以手动复位,这时候我们可以在程序里设定个软件复位。
uint32_t( u32)、 uint16_t( u16)、uint8_t( u8)分别占几个字节 uint32_t(u32) :四个字节
转载自: 跋扈洋 |
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南