STM32 KEIL if满足条件却无法进入
2025-10-23 来源:bilibili
今天调试的时候发现一个很不能理解的事情,if语句满足条件却无法进入,目前已经成功解决,在这里自己记录一下,也希望能够帮助更多的同学。

可以看到标志位已经置1了,一直运行却无法进入if语句里
通过分析最上面的汇编,发现没有执行判断。个人猜测:应该是编译器认为此处是死循环,没有考虑中断置1的情况给优化了,这里给出两种解决方法,推荐使用第二种。
解决方法1(不推荐):

设置完后,重新编译整个工程文件

可见调小优化,汇编正常,程序能够正常进入if内部
用此方法的话,把代码发给其他人进行编译,就需要别人也要对编译器进行同样的设置,才不会出现这样的问题。
解决方法2:
所用变量定义时加入关键字:volatile

增加了关键字 volatile
重新编译并烧录进ARM发现能够正常执行程序,解决完问题了。
相关文章
- 意法半导体中国本地造STM32微控制器启动规模量产
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 基于机智云与STM32的智能拐杖安全监测系统在养老物联网中的应用
- 内置全栈安全,一站式满足CRA法案与IEC 62443标准——米尔STM32MP257核心板
- 如何用 STM32 FLASH 实现等效 100 万次擦写的 EEPROM 功能?
- 实战解析:通过一个小项目掌握STM32所有外设
- STM32学了两年半,却还是不会做项目
- 意法半导体推出最新STM32MP21微处理器,兼具高性价比、低功耗、高灵活性
- 基于STM32的矿井作业环境监测系统设计与实现
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析
热门新闻




