利用战舰开发板,通过串口1中断接收数据,然后电脑中通过sscom4.2向stm32发送数据,stm32串口能够接收到数据,但是在串口中断函数中,无法判断接收到的数据,具体代码如下所示:
void USART1_IRQHandler(void) //串口1中断处理程序
{
u8 Res;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART1); //接收电脑发送的数据
USART_SendData(USART1,Res); //向电脑回传接收到的数据,能正确的接收到数据
switch(Res) //电脑发送0x99,串口能够接收到0x99,但是程序中不会执行switch段程序 ,但是发送0x31的时候则电脑端能接收到yes,而且改成0x51,0x61等只要后面有1。。switch程序不改,电脑端也能接收到yes,这一点很奇怪
{
case 0x31:
printf("yes
");
break;
case 0x99:
printf("no
");
break;
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>