不同的代码,即使编译器的优化级别一样,优化策略也可能不一样
比如在uart2_txbusy = 1;和while (uart2_t ...
不愧是超级版主。{:handshake:} zhp 发表于 2023-6-27 18:04
不同的代码,即使编译器的优化级别一样,优化策略也可能不一样
比如在uart2_txbusy = 1;和while (uart2_t ...
那我以后遇到这样的问题,如何排查呢,我也没有想到是VOLATILE的问题啊。如何去分析呢,请指教一下。 volatile u8 uart2_txbusy;
定义时加个volatile试试呢? hsrzq 发表于 2023-6-27 21:32
定义时加个volatile试试呢?
就是这个方法啊。 在中断中使用的全局变量都要加上volatile修饰,禁止编译器优化 我遇到类似的问题 发送中断进不去发送标志位不清零直接卡死在 发送里 清问是不是使用串口2就需要把这个位置1?为什么官网的例程没有这个呢?
页:
1
[2]