各位兄弟姐妹,小弟初学stm32f103,现在我想用串口接收一个固定长度的数组,但是收的数据不对?

2019-07-20 08:35发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
welcomeplay
1楼-- · 2019-07-21 03:15
 精彩回答 2  元偷偷看……
lzh
2楼-- · 2019-07-21 08:16
中断里面那样写,有可能造成数据没发完,又开始从数组0开始写入了。收一次发一次最好限制接收位数,收完了再发。边收边发就弄个循环数组
lzh
3楼-- · 2019-07-21 13:13
本帖最后由 lzh 于 2018-4-19 11:50 编辑

if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  
{                                                                              
if(num<8)
{
  rx_buf[num++]=USART_ReceiveData(USART1);
  if(num==8)recvFlag=1;
}
}
                                                                                 
if(recvFlag){                                                   

for(i=0;i<8;i++)
{                                                                                                               
USART_SendData(USART1, rx_buf);

}
recvFlag=0;
num=0;
}


一周热门 更多>