OpenEdv-开源电子网

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

串口发送16进制字符串显示

[复制链接]

17

主题

76

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-6-14
在线时间
30 小时
发表于 2016-6-14 12:33:29 | 显示全部楼层 |阅读模式
3金钱
新手求助,发送给设备16进制,设备会有响应。发送16进制字符串0xFE,0x03,0x00,0x00,0x00,0x02,0xD0,0x04,发送了没反应,感觉这样没错啊。求教
void Sends(char *buf1)                  //usart1
{
        u8 i=0;
        while(1)
        {
         if(buf1[i]!=0)
                 {
                        USART_SendData(USART1,buf1[i]);
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};
                         i++;
                }
         else
         return ;

                }
        }

Sends("0xFE,0x03,0x00,0x00,0x00,0x02,0xD0,0x04\r\n");

最佳答案

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

USART_SendData(USART1,0xff); while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-14 12:33:30 | 显示全部楼层
USART_SendData(USART1,0xff);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-14 12:38:21 | 显示全部楼层
你先换成数组,看看能发送成功不。同时得调试确认,他已经运行了发送数据那里的语句了
回复

使用道具 举报

17

主题

76

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-6-14
在线时间
30 小时
 楼主| 发表于 2016-6-14 12:42:54 | 显示全部楼层
憨厚诚实大叔 发表于 2016-6-14 12:38
你先换成数组,看看能发送成功不。同时得调试确认,他已经运行了发送数据那里的语句了

接串口调试助手是显示这个,但是选择16进制显示就不是了。为什么呀?就是字符串吗
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-14 13:04:50 | 显示全部楼层
本帖最后由 憨厚诚实大叔 于 2016-6-14 13:09 编辑

你的意思是,选择16进制显示,发现结果跟你发送的不一样???
而用串口调试助手,不选16进制,结果就和你发的一样???是这个意思么
回复

使用道具 举报

17

主题

76

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-6-14
在线时间
30 小时
 楼主| 发表于 2016-6-14 13:38:25 | 显示全部楼层
憨厚诚实大叔 发表于 2016-6-14 13:04
你的意思是,选择16进制显示,发现结果跟你发送的不一样???
而用串口调试助手,不选16进制,结果 ...

嗯嗯。是这样
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-14 13:40:59 | 显示全部楼层
你去查一下ANSI编码的码表,看看对比0-9,a-z,A-Z对应的编码你就知道为什么了,哎
回复

使用道具 举报

17

主题

76

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-6-14
在线时间
30 小时
 楼主| 发表于 2016-6-14 13:48:12 | 显示全部楼层
憨厚诚实大叔 发表于 2016-6-14 13:40
你去查一下ANSI编码的码表,看看对比0-9,a-z,A-Z对应的编码你就知道为什么了,哎

奥,我知道了,这样是把0xff这4个给转换了。但是发送十六进制应该怎么发呢
回复

使用道具 举报

17

主题

76

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-6-14
在线时间
30 小时
 楼主| 发表于 2016-6-14 13:52:58 | 显示全部楼层
憨厚诚实大叔 发表于 2016-6-14 13:50
USART_SendData(USART1,0xff);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};

嗯呢,谢谢,这样死发送一个,发送一串16进制的呢?就是MODBUS协议。采集传感器信息的。一次一组16进制指令
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-14 13:55:14 | 显示全部楼层
定义数组发呗,和你一开始的代码基本一样
回复

使用道具 举报

17

主题

76

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-6-14
在线时间
30 小时
 楼主| 发表于 2016-6-14 14:59:23 | 显示全部楼层
憨厚诚实大叔 发表于 2016-6-14 13:55
定义数组发呗,和你一开始的代码基本一样

好了。谢谢你
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-12 13:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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