OpenEdv-开源电子网

标题: LORA程序中“接收数据”函数问题 [打印本页]

作者: 大海中鱼    时间: 2019-9-3 18:16
标题: LORA程序中“接收数据”函数问题
请问大家这个函数的意思是:串口3接收串口1的数据吗?我把GPS(定义在串口2)程序移植到LORA程序中,在上位机上得到的是一些随机数,不是在LCD上显示的那种GPS实时数据,怎么解决?谢谢~~
void LoRa_ReceData(void)
{
        u16 i=0;
        u16 len=0;
       //有数据来了
        if(USART3_RX_STA&0x8000)
        {
                len = USART3_RX_STA&0X7FFF;
                USART3_RX_BUF[len]=0;//添加结束符
                USART3_RX_STA=0;

                for(i=0;i<len;i++)
                {
                  while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕   
                  USART_SendData(USART1,USART3_RX_BUF);
                }
                LCD_Fill(10,260,240,320,WHITE);
                if(LoRa_CFG.mode_sta==LORA_STA_Tran)//透明传输
                {       
                        Show_Str_Mid(10,270,USART3_RX_BUF,16,240);//显示接收到的数据
                }
               else if(LoRa_CFG.mode_sta==LORA_STA_Dire)//定向传输
                {
                        //将十六进制的数据转化为字符串打印在lcd_buff数组
                        sprintf((char*)rlcd_buff,"%x %x %x %x %x",
                        USART3_RX_BUF[0],USART3_RX_BUF[1],USART3_RX_BUF[2],USART3_RX_BUF[3],USART3_RX_BUF[4]);       
                        Show_Str_Mid(10,270,rlcd_buff,16,240);//显示接收到的数据       
                }
                memset((char*)USART3_RX_BUF,0x00,len);//串口接收缓冲区清0
        }
}


作者: 大海中鱼    时间: 2019-9-3 18:21
通过透明传输,在ATK-LORA-01上接收。




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4