麻烦各位帮忙看下,关于串口发送数据的问题

2019-07-21 00:27发布

          各位大哥好,小弟我用的是stm32f103:通过串口发数据,在不加入延时函数,串口调试助手接收到的数据会有丢失

          以下OV7670_CreatColor()是通过串口向pc发送数据的,重点在两个for循环上,内for循环,我加入了延时20ms时候接收到的数据是完整的,延时10ms也会出现数据丢失。但是我觉得串口发送数据,通过判断发送标志位TC,应该能确保发发送正确的。现在困惑问题出在哪里了。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
www88988
2019-07-21 07:56
你那个 USART1_SendOneChar(uchar ch) 函数可这么写
USART1_SendOneChar(uchar ch)
{
   USART_SendData(USART1, ch);
   while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
因为没有做中断处理所以初始化时去了
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //开启相关中断
这句话
发送数据别用printf函数,就用你的USART1_SendOneChar 发送
串口发送数据只跟波特率有关,不需要延时,可以去了延时。改动后再用串口助手试试。

一周热门 更多>