IO口模拟串口通信问题

2019-08-14 05:51发布

问题来自于今年国赛的光通信。
最后问题化简成这样

好了我单片发送方机编程实现的是在while循环里面不停的发0x07这个数据

  1.   while(1)
  2.         {
  3.             while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
  4.             USART_SendData(USART1,0x07);
  5.         }
复制代码
2.jpg

然后在串口助手里面查看,果然接收的数据为0x70刚好成了误码的数据了。

下面给出我分析的误码的原理
1.jpg
上图中S是串口通信起始位,T是停止位,空是两帧数据之间的间隔,上面是写出的得到误码的数据,下面是我期望的数据。
原因就是起始位置判断不对,它把原本数据的第4位看成了起始位,造成的,
我想知道这个怎么解决呢?







友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。