dw8做网站步骤图,微博 分享 wordpress,服装定制官网,免费软件定位对方手机位置提到优化就不得不提及 volatile
使用场景 1#xff1a;中断服务程序中修改的供其它程序检测的变量#xff0c;需要加volatile#xff1b; : 2#xff1a;多任务环境下各任务间共享的标志#xff0c;应该加volatile#xff1b; 3#xff1a;并行设备的硬件寄存器#x…提到优化就不得不提及 volatile
使用场景 1中断服务程序中修改的供其它程序检测的变量需要加volatile : 2多任务环境下各任务间共享的标志应该加volatile 3并行设备的硬件寄存器如状态寄存器
还有一种就是今天遇到的查了半天容易忘记
起因 使用gd32F103cb来开发然后采取i2c 协议操作eeprom 调试eeprom写入的时候如图 延时2ms,在优化等级为O0的时候没问题但是在等级为O3的时候经过调试发现一直无法写入成功因为我是采取TFDB方式来写入的还以为移植TFDB出现了问题最后直接通过调用最底层I2C 写入都失败
让我们来看下这个延时函数的实现方法如下 这个是我修改后的加入了volatile 就是单纯的空运转如果不加入关键字就会被优化掉从而导致上述I2C的协议中延时出问题最后导致因为协议问题无法写入eeprom。