stm32串口中断,只能接首字母(一个),接不到其它字符?怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32串口中断,只能接首字母(一个),接不到其它字符?怎么解决相关的知识,希望对你有一定的参考价值。

void USART2_IRQHandler(void) if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET) if(CMDCount < 90) CMD[CMDCount++]=USART_ReceiveData(USART2); if( strstr(CMD,"ab_cd")!=NULL)// 假如我要串口接到ab_cd做出下面动作,实际我用串口调试助手//发ab_cd的时候,只能接到a,而后面根本接不到求助大家帮忙解决。 GPIO_SetBits(GPIOF,GPIO_Pin_6); GPIO_ResetBits(GPIOF,GPIO_Pin_6); Clr_CMD();//这个只是为了把命令清0,方便下次接收 USART_ClearITPendingBit(USART2, USART_IT_RXNE);
//如果需要查看整个程序的话,可下载整个程序:http://pan.baidu.com/s/1mgiP8Pa


void Clr_CMD(void)

char i;
for(i=0;i<CMDCount;i++)
CMD[i] = \'\\0\';
CMDCount = 0;



你这个函数的用处放错了,每次进来都清空,肯定显示不出来啊追问

我也曾这样写。

上面是在主程序。

中断写成这个样,但还是问题同上,只能接到一个字母。

追答

你没发现你在主函数里面一直在清空CMD数组,还有CMDCount???

参考技术A 关注
mark

以上是关于stm32串口中断,只能接首字母(一个),接不到其它字符?怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

stm32串口发送正常,接受只能收到一个字符,求解,急

stm32h750串口发送中断关掉

stm32串口通信,只能接收到第一个字节。。。急!!!

stm32 开启接收中断 PC 发送两次 为啥串口只接收到一次

STM32串口 不用中断方式 接收一个字符串...怎么解决?

STM32串口通讯程序