你if条件太多了,你分开写.
你将RXbuff[cont-3]拖到“眼镜”窗口中,当判断这句时,看看值为多少。顺便将cont和cont-3也拖进去,看看是否正常。
你这种写法可能会出现这种现象,因为编译器可能会先进行判断,再进行串口读数据。所以你进不了if。
你可以增加一条判断,先判断count 是否为 16,然后再判断buffer中的数据,这样编译器不会将顺序打乱优化。
可以,在该函数开始增加 #pragma optimize_off 语句,关闭对该函数的优化,你看是否有效。