32精英版的RS485输出GPS的串口数据是乱码怎么回事

2019-07-21 01:42发布

要把GPS数据用485送给有人的4G模块
把485的例程和GPS的例程合并了下
给这个定义时候不太懂这个u8还是什么还有[]里面的
u8 rs485buf[5];
然后在这循环下加入了485输出
Gps_Msg_Show();       
ap=gpsx.longitude;//经度
rs485buf[0]=ap;       
RS485_Send_Data(rs485buf,10);
输出就是3F0A201D02083F0A203F0C203F0C3F0A201D02083F0A203F0C203F0C,很不解
或者可以用串口一 直接接上4G芯片的输入输出引脚实现输入输出吗
下面是主函数
[mw_shl_code=applescript,true]int main(void)
{         
        u16 i,rxlen;
        u16 lenx;
        u8 key=0XFF;
        u8 upload=0;
        u8 rs485buf[10];
        u8 ap;               
        delay_init();                     //延时函数初始化          
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
        uart_init(115200);                 //串口初始化为115200
        usmart_dev.init(72);                //初始化USMART               
        LED_Init();                                          //初始化与LED连接的硬件接口
        KEY_Init();                                        //初始化按键
        LCD_Init();                                           //初始化LCD   
        usart3_init(38400);                //初始化串口3
        RS485_Init(115200);
        POINT_COLOR=RED;
       
        if(SkyTra_Cfg_Rate(5)!=0)        //设置定位信息更新速度为5Hz,顺便判断GPS模块是否在位.
        {
           LCD_ShowString(30,120,200,16,16,"SkyTraF8-BD Setting...");
                do
                {
                        usart3_init(9600);                        //初始化串口3波特率为9600
                  SkyTra_Cfg_Prt(3);                        //重新设置模块的波特率为38400
                        usart3_init(38400);                        //初始化串口3波特率为38400
      key=SkyTra_Cfg_Tp(100000);        //脉冲宽度为100ms
                }while(SkyTra_Cfg_Rate(5)!=0&&key!=0);//配置SkyTraF8-BD的更新速率为5Hz
          LCD_ShowString(30,120,200,16,16,"SkyTraF8-BD Set Done!!");
                delay_ms(500);
                LCD_Fill(30,120,30+200,120+16,WHITE);//清除显示
        }
        while(1)
        {               
                delay_ms(1);
                if(USART3_RX_STA&0X8000)                //接收到一次数据了
                {
                        rxlen=USART3_RX_STA&0X7FFF;        //得到数据长度
                        for(i=0;i<rxlen;i++)USART1_TX_BUF=USART3_RX_BUF;          
                        USART3_RX_STA=0;                           //启动下一次接收
                        USART1_TX_BUF=0;                        //自动添加结束符
                        GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF);//分析字符串
                        Gps_Msg_Show();                                //显示信息
                        ap=gpsx.longitude;//经度
                        rs485buf[0]=ap;       
                        RS485_Send_Data(rs485buf,10);       
                        if(upload)printf(" %s ",USART1_TX_BUF);//发送接收到的数据到串口1
                       
                }
                key=KEY_Scan(0);
                if(key==KEY0_PRES)
                {
                        upload=!upload;
                        POINT_COLOR=RED;
                        if(upload)LCD_ShowString(30,100,200,16,16,"NMEA Data Upload:ON ");
                        else LCD_ShowString(30,100,200,16,16,"NMEA Data Upload:OFF");
                }
                if((lenx%500)==0)
                        LED0=!LED0;
                lenx++;       
        }
}[/mw_shl_code]

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。