OpenEdv-开源电子网

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

RS485例程发送16进制数,接收有误?

[复制链接]

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
发表于 2017-8-30 14:23:18 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 笨鸟想飞 于 2017-8-30 14:24 编辑



参照原子哥RS485例程,我改了以下,发送[mw_shl_code=applescript,true]u8 ADDBuffer[5]={0x01,0x02,0x03,0x04,0x05}; [/mw_shl_code]


发送这个数组,接收到的是  81 82 03 84 05  这五个16进制数,不是我想要的 01 02 03 04 05
请问是不是进制没搞对?
RS485驱动用的是103ZE战舰版的驱动
以下为主程序代码

[mw_shl_code=applescript,true]
u8 ADDBuffer[5]={0x01,0x02,0x03,0x04,0x05};  

int main(void)
{
        u8 t,DATA_RVC_LEN;
  u8 key=0;
        delay_init();                  //初始化延时函数
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart_init(1,9600,E);
        RS485_Init(2400);
        
        
        LED_Init();                        //初始化LED端口
        KEY_Init();
        LED0=0;



        
        while(1)
        {         

                        key=KEY_Scan(0);        //得到键值
                   if(key)
                {                                                   
                        switch(key)
                        {                                 
                                case WKUP_PRES:        //控制蜂鸣器
                                
                                  RS485_Send_Data(ADDBuffer,5);
                                
                                        break;
                                case KEY2_PRES:        //控制LED0翻转
                                        LED0=!LED0;
                                        break;
                                case KEY1_PRES:        //控制LED1翻转         
                                        LED1=!LED1;
                                        break;
                                case KEY0_PRES:        //同时控制LED0,LED1翻转
                                        LED0=!LED0;
                                        LED1=!LED1;
                                        break;
                        }
                }else delay_ms(50);

               
                }         
}        [/mw_shl_code]




}@O27N`$MB%_3JQN$RP0.png

最佳答案

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

最终我好像改用DMA的通讯方式了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-30 14:23:19 | 显示全部楼层
最终我好像改用DMA的通讯方式了
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-30 14:55:48 | 显示全部楼层
回复

使用道具 举报

10

主题

266

帖子

0

精华

高级会员

Rank: 4

积分
693
金钱
693
注册时间
2017-7-27
在线时间
98 小时
发表于 2017-8-30 15:02:34 | 显示全部楼层

改出问题了,好好查!
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2017-8-30 15:19:42 | 显示全部楼层
huanghan 发表于 2017-8-30 15:02
改出问题了,好好查!

原子哥的例程也是这样的,cnt一直累加,屏幕上显示的也不是匹配的,我怀疑是进制转换的问题,可发送的不是16进制的吗?
回复

使用道具 举报

10

主题

266

帖子

0

精华

高级会员

Rank: 4

积分
693
金钱
693
注册时间
2017-7-27
在线时间
98 小时
发表于 2017-8-30 16:06:59 | 显示全部楼层
笨鸟想飞 发表于 2017-8-30 15:19
原子哥的例程也是这样的,cnt一直累加,屏幕上显示的也不是匹配的,我怀疑是进制转换的问题,可发送的不 ...

你有没试过把commix助手上的波特频率设置为9600
回复

使用道具 举报

1

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2011-12-1
在线时间
110 小时
发表于 2017-8-30 16:13:33 | 显示全部楼层
你这个串口助手的DTR RTS 校验位这些都用到了吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-8-31 01:01:12 | 显示全部楼层
你直接用串口发,看看正常不
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 03:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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