STM8与STM32的内核不同,其大小端也不一样。将STM32的程序移植到STM8时如果程序中存在用于MODBUS的CRC16验证,一定要注意修改高8位和低8位的位置!
比如,STM32CRC16验证程序:
if(RecBuf[i-2]==HIBYTE(crc) && ucMbsBuf[i-1]==LOBYTE(crc))
在STM8下一定要更换大小端,更换结果为:
if(RecBuf[i-2]==LOBYTE(crc) && ucMbsBuf[i-1]==HIBYTE(crc))
妈蛋,一条语句的事情我调了一上午,简直坑死我了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>