這個是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] 算是串口中斷收到的數據嗎?????
我是新手,求大神指導,謝謝!!!
|