如题:因为我们公司是搞楼宇方面,所以串口都是单线制度的,发完数据,然后再打开串口来收数据,但是我刚刚才发现一个问题,例如我发串口数据AA , BB , CC ,DD,发送完数据包后,我再次打开接收串口中断,我会收回AA ,即包的第一个数据。最主要的代码如下:
int j = 0;
USART_ITConfig(USART1, USART_IT_RXNE, DISABLE); //开启串口接受中断
for( j = 0; j < i_datalen; j++ ) // 循环发送数据
{
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
; //循环发送,直到发送完毕
USART_SendData(USART1, i_data[j]);
}
delay_ms(5);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //开启串口接受中断
无论我是否接外部设备,效果一样,期待大神解答?
|