用电脑上的串口调试助手向电脑发送20个字符到STM32,收到后显示在2.8TFT上,可是点一下发送后,TFT上显示了最后的两个字符,再点一次发送
又显示了倒第三位和倒第四位..点发送十次才完整发送过来。
如下是中断服务函数
void USART1_IRQHandler(void) //?®??1????·??????ò
{
u8 Res;
#ifdef OS_TICKS_PER_SEC //?????±?????????¨????,???÷??????ucosII??.
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //????????(????????????±?????0x0d 0x0a?á??)
{
Res =USART_ReceiveData(USART1);//(USART1->DR); //????????????????
shuzu[n]=Res;
n++;
if(n==20)
{
n=0;
m=1;
}
}
#ifdef OS_TICKS_PER_SEC //?????±?????????¨????,???÷??????ucosII??.
OSIntExit();
#endif
}
#endif
如下是主函数的显示函数
if(m==1)
{
m=0;
LCD_ShowString(40,50,400,24,24,shuzu); //x,y×?±ê??width?hheight???ò?ó????×????ó????????×?·?
}
数组我定义的是char shuzu【20】,从昨天一直到今天,快帮帮忙。
|