串口屏发送的数据格式如图:
void USART2_IRQHandler(void)
{
static uchar rc[100];
static int i=0,j=0;
int zh=0;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
rc = USART_ReceiveData(USART2);
i++;
if(rc[i-3]==0xFF)
{
for(j=8;j<i-4;j++)
{
zh=zh*10+(rc[j]-48);
while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
}
TIM_SetCompare4(TIM3, zh);
printf("%d
",zh);
i=0;j=0; zh=0;rc=0;
}
}
以上是串口接收数据的程序,现在的情况是这样的:
串口只能第一次正确接收到一个完整的数字数据,如返回“366”
但第二次就是乱码,一般先是返回0 0,
这是串口屏的问题,还是32串口的问题?
纠结中。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
与设置的画面数量有关,具体的原因还没有找到,好像是跟位有关。。。
一周热门 更多>