这个是STM32串口3的中断函数
void USART3_IRQHandler(void)
{
u8 mychar;
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(USART3,USART_IT_RXNE);
mychar = USART_ReceiveData(USART3);
if(UartReceiverBufCount0==0)
{
UartReceiverBuf[0][UartReceiverBufCount0++]=mychar;
if(mychar=='\n')
{
UartReceiverBuf[1][UartReceiverBufCount1++]=mychar;
if(mychar=='\n')
{
UartReceiverBuf[2][UartReceiverBufCount2++]=mychar;
}
}
}
}
}
目前是在调试两个蓝牙模块的连接,
当连接成功后,串口助手收到的信息是这样子的
我的思路是这样子的,因为有三行信息,当检测有换行符时
数据存到UartReceiverBuf[1][UartReceiverBufCount1++];
当再次检测到有换行符时,数据存到UartReceiverBuf[2][UartReceiverBufCount2++];
问题:
1. if(mychar=='\n') 这样子检测换行符正确吗?
2. 串口助手中[AT]和[DA] 算是串口中断收到的数据吗?????
我是新手,求大神指导,谢谢!!!
|