我用的蓝牙模块,想接收串口助手发送给蓝牙的字符串,
假如串口助手发送"stm32"的话会进入几次中断?
下面是我的串口中断函数
u8 buf[50];
[mw_shl_code=c,true]
void USART1_IRQHandler(void) //串口1中断服务程序
{
static u8 cnt = 0;
u8 r;
if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET) //接收中断
{
r =USART_ReceiveData(USART1);//读取接收到的数据
buf[cnt++] = r;
buf[cnt] = ' ';
printf("%s",buf);
if(r == '
')
cnt = 0;
// while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);
}
USART_ClearFlag(USART1,USART_FLAG_RXNE);
}
[/mw_shl_code]
发送"stm32"第一次返回了ssmsm2,第二次发送"stm32"返回了sm2s
之后就再发就没反应了。。
不明白怎么回事
接收字符串
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
{
static u8 cnt = 0;
u8 r;
if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET) //接收中断
{
r =USART_ReceiveData(USART1);//(USART1->DR); //读取接收到的数据
buf[cnt++] = r;
buf[cnt] = ' ';
printf("%s",buf);
if(r == ' ')
cnt = 0;
// while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);
}
USART_ClearFlag(USART1,USART_FLAG_RXNE);
}
上面的代码显示好像有点问题
一周热门 更多>