有个表,用MODBUS读Sample_1_Struct.speed这个值。这个值是最终计算出来的速度值。
小于0.15是怕现场有干扰,将小于0.15或者0.2的值软件上面归零了。
但是在现场用串口读数据的时候,读到的这个值还是会出现0.1之类的。
仔细想想,可能是Sample_1_Struct.speed在第一次赋值结束后,还没开始和0.15比较,
这个时候正好进串口中断,读取了这个值。若该值正好是0.1的话,就被后台读取到了。
要规避这个bug,可以再设个中间变量,期间计算都用中间变量,在最后将值赋给Sample_1_Struct.speed。
记录一下。用串口读的变量,只能赋一次值,不在再多次赋值期间进串口中断读到的值可能是错误的。这个bug已经出现2次了,但愿下次不要再犯。