串口接收AJ-SR04M数据用数组打印出来,搞不懂哪里有错

2019-07-21 04:01发布

本帖最后由 Diviner 于 2019-3-23 11:40 编辑

[mw_shl_code=applescript,true]// 串口2中断服务函数

void DEBUG_USART2_IRQHandler(void)
{
        char Temp2;
        flag=0;
        if(USART_GetITStatus(DEBUG_USART2,USART_IT_RXNE)!=RESET)
        {        

                Temp2 = USART_ReceiveData(DEBUG_USART2);
                //USART_SendData(DEBUG_USART1,Temp2);  
                D[l++]=Temp2;

        }         

}[/mw_shl_code]

[mw_shl_code=applescript,true]int main(void)
{        
        char *str="01";
        USART1_Config();
        USART2_Config();
        LED_GPIO_Config();      
        Usart_SendStr(DEBUG_USART2,(uint8_t*)str);
        printf( "串口printf函数测试 " );

  while (1)
{
  if(Temp2=='')
        {
                break;
        }
}
        LED2_ON;
printf("距离=");
  for(l=0;l<20;l++)
                {
                        printf("%c",D[l]);
                }

        while (1)
        {
        
        }
}[/mw_shl_code]


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
Diviner
1楼-- · 2019-07-21 22:08
edmund1234 发表于 2019-3-23 15:09
l 在main ++, 在中断里也++, 这是搞什么鬼了?
在中断里定义了同名的Temp2, 所以中断的Temp2与全局的Te ...

对吼,我把他们混为一谈了,尴尬
Diviner
2楼-- · 2019-07-22 01:47
szczyb1314 发表于 2019-3-23 15:20
你的main函数写的有问题,一上电,执行初始化,打印 串口printf函数测试,进入第一个while(1),这时全局变 ...

问题解决了,谢谢
Diviner
3楼-- · 2019-07-22 01:52
edmund1234 发表于 2019-3-23 15:09
l 在main ++, 在中断里也++, 这是搞什么鬼了?
在中断里定义了同名的Temp2, 所以中断的Temp2与全局的Te ...

问题解决了,谢谢

一周热门 更多>