OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7023|回复: 10

485通信实验,测试数据到串口,通过485通信线连接到电脑上,在调试助手ATKXcom上显示的数据全是乱码?求解!!

[复制链接]

9

主题

32

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-3-16
在线时间
10 小时
发表于 2016-8-15 13:56:43 | 显示全部楼层 |阅读模式
1金钱
使用原子提供库函数例程,实验26,485通信实验,测试数据到串口,通过485通信线连接到电脑上,在调试助手ATKXcom上显示的数据全是乱码?求解!!

最佳答案

查看完整内容[请看2#楼]

说明你发送的不是10进制数据
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-8-15 13:56:44 | 显示全部楼层
yanjin88 发表于 2016-8-22 16:17
在串口调试助手上,在点击16进制显示,打钩,就显示正常了(16进制数据显示)?为啥不能10进制显示呢??? ...

说明你发送的不是10进制数据
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11522
金钱
11522
注册时间
2014-4-1
在线时间
1310 小时
发表于 2016-8-15 14:32:36 | 显示全部楼层

串口软件,十六进制显示,打钩没?


回复

使用道具 举报

9

主题

32

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-3-16
在线时间
10 小时
 楼主| 发表于 2016-8-15 14:47:06 | 显示全部楼层
xuande 发表于 2016-8-15 14:32
串口软件,十六进制显示,打钩没?

为什么跟串口1,显示数据不一样,串口1可以显示10进制,求且没有乱码?(参看:实验4  串口实验)
回复

使用道具 举报

9

主题

32

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-3-16
在线时间
10 小时
 楼主| 发表于 2016-8-15 14:47:36 | 显示全部楼层
yanjin88 发表于 2016-8-15 14:47
为什么跟串口1,显示数据不一样,串口1可以显示10进制,求且没有乱码?(参看:实验4  串口实验)

为什么跟串口1,显示数据不一样,串口1可以显示10进制,且没有乱码?(参看:实验4  串口实验)
回复

使用道具 举报

13

主题

75

帖子

0

精华

高级会员

Rank: 4

积分
659
金钱
659
注册时间
2016-6-23
在线时间
72 小时
发表于 2016-8-17 15:41:46 | 显示全部楼层
是不是波特率配置不对
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-8-17 19:38:53 | 显示全部楼层
检查波特率
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

32

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-3-16
在线时间
10 小时
 楼主| 发表于 2016-8-22 16:17:16 | 显示全部楼层
在串口调试助手上,在点击16进制显示,打钩,就显示正常了(16进制数据显示)?为啥不能10进制显示呢????
回复

使用道具 举报

9

主题

32

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-3-16
在线时间
10 小时
 楼主| 发表于 2016-8-24 23:22:04 | 显示全部楼层
也只能16进制显示正常!
回复

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2014-12-24
在线时间
10 小时
发表于 2017-11-13 11:28:43 | 显示全部楼层

先将数据转换成字符串形式,然后再通过485输出就可以了,试下下面的代码,经过验证可以正常显示。

int main(void)
{
  u8 rs485buf[5];
u8 tbuf[5];  
u8 x[8][5]={"",};
  u8 str[]="\r\n";
u8 len=0;
u8 key;
u8 i=0,t=0;
u8 cnt=0;
    HAL_Init();                     //³õʼ»¯HAL¿â   
    Stm32_Clock_Init(360,25,2,8);   //ÉèÖÃʱÖÓ,180Mhz
    delay_init(180);                //³õʼ»¯ÑÓʱº¯Êý
    uart_init(115200);              //³õʼ»¯USART
    LED_Init();                     //³õʼ»¯LED
    KEY_Init();                     //³õʼ»¯°´¼ü
    SDRAM_Init();                   //³õʼ»¯SDRAM
    LCD_Init();                     //³õʼ»¯LCD
RS485_Init(9600);          //³õʼ»¯RS485
   POINT_COLOR=RED;
LCD_ShowString(30,50,200,16,16,"Apollo STM32F4/F7");
LCD_ShowString(30,70,200,16,16,"RS485 TEST");
   LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,"2016/1/16");   
LCD_ShowString(30,130,200,16,16,"KEY0:Send"); //ÏÔʾÌáʾÐÅÏ¢  
POINT_COLOR=BLUE;//ÉèÖÃ×ÖÌåΪÀ¶É«   
LCD_ShowString(30,150,200,16,16,"Count:");   //ÏÔʾµ±Ç°¼ÆÊýÖµ
LCD_ShowString(30,170,200,16,16,"Send Data:");  //Ìáʾ·¢Ë͵ÄÊý¾Ý
LCD_ShowString(30,210,200,16,16,"Receive Data:"); //Ìáʾ½ÓÊÕµ½µÄÊý¾Ý  
            
while(1)
   {
    key=KEY_Scan(0);
    if(key==KEY0_PRES)//KEY0°´ÏÂ,·¢ËÍÒ»´ÎÊý¾Ý
    {
     for(i=0;i<5;i++)
     {
      rs485buf[i]=cnt+i;//&Igrave;&icirc;&sup3;&auml;·&cent;&Euml;&Iacute;&raquo;&ordm;&sup3;&aring;&Ccedil;&oslash;
      
      LCD_ShowxNum(30+i*32,190,rs485buf[i],3,16,0X80); //&Iuml;&Ocirc;&Ecirc;&frac34;&Ecirc;&yacute;&frac34;&Yacute;
     //printf("rs485buf[i] %d\r\n",rs485buf[i]);  
     
      }
        for (i=0;i<5;i++)
    {
    sprintf(&x[i][0],"%4d",rs485buf[i]);
     RS485_Send_Data(&x[i][0],5);//·&cent;&Euml;&Iacute;5&cedil;&ouml;×&Ouml;&frac12;&Uacute;   
    }
        RS485_Send_Data(str,2);//·&cent;&Euml;&Iacute;2&cedil;&ouml;×&Ouml;&frac12;&Uacute;      
    }   
   RS485_Receive_Data(rs485buf,&key);
   if(key)//&frac12;&Oacute;&Ecirc;&Otilde;&micro;&frac12;&Oacute;&ETH;&Ecirc;&yacute;&frac34;&Yacute;
    {
      if(key>5)key=5;//×&icirc;&acute;ó&Ecirc;&Ccedil;5&cedil;&ouml;&Ecirc;&yacute;&frac34;&Yacute;.
       for(i=0;i<key;i++)LCD_ShowxNum(30+i*32,230,rs485buf[i],3,16,0X80); //&Iuml;&Ocirc;&Ecirc;&frac34;&Ecirc;&yacute;&frac34;&Yacute;
      }
    t++;
   delay_ms(10);
   if(t==20)
   {
    LED0=!LED0;//&Igrave;á&Ecirc;&frac34;&Iuml;&micro;&Iacute;&sup3;&Otilde;&yacute;&Ocirc;&Uacute;&Ocirc;&Euml;&ETH;&ETH;
    t=0;
    cnt++;
    LCD_ShowxNum(30+48,150,cnt,3,16,0X80); //&Iuml;&Ocirc;&Ecirc;&frac34;&Ecirc;&yacute;&frac34;&Yacute;
   }     
  }        
}


回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2020-7-20
在线时间
4 小时
发表于 2020-8-2 20:21:00 | 显示全部楼层
xuande 发表于 2016-8-15 14:32
串口软件,十六进制显示,打钩没?

666,我就犯了这个错误。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 15:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表