STM32发送出来的数据,串口调试助手输入命令接收的数据首字节多了一个0x00

串口长什么样设备上的串口通常使用9针头连接所以看到的多数通信电缆都是这个样子。串口通信协议有232、422、485等各种协议这个不懂没关系,跟通信调试没有关系串口調试工具前文分享了一个串口调试助手,调试...

}

使用stm32f10x调试串口通讯时发现一个絀错的现象,硬件复位重启之后发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失

当包含有数据的一帧发送完成后,由硬件将该位置位如果USART_CR1中的TCIE为1,则产生中断由软件序列清除该位(先读USART_SR,然后写入USART_DR)TC位也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序 

0:发送还未完成; 


注意到这一句:由软件序列清除该位(先读USART_SR,然后写入USART_DR) 也就是说,要先read USART_SR,然后write USART_DR才能完成TC状态位的清除。而硬件複位后串口发送的首个数据之前没有read SR的操作,是直接write DR也就是说,TC没有被清除掉 

}

主要为大家详细介绍了MFC串口通信發送16进制数据具有一定的参考价值,感兴趣的小伙伴们可以参考一下

}

我要回帖

更多关于 串口调试助手输入命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信