OpenEdv-开源电子网

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

USART串口发送16进制 问题(新人)

[复制链接]

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
发表于 2017-8-23 11:41:37 | 显示全部楼层 |阅读模式
3金钱
      测试串口发送16进制数的时候,发现当调用USART_SendData函数的时候,发送十进制范围在0-127之间的16进制数时串口助手显示数据正常,但发送十进制范围大于127的16进制数时,串口助手显示的数据错误,也就是说16进制数在0x01-0x7f发送没问题,但在0x80-0xff发送出现问题,串口初始化波特率之类的配置都没有问题。新人求教应该在哪方面出的问题,希望各位大大耐心解答,谢谢!

0x7f.JPG
0x7f1.JPG
0x80.JPG
0x801.JPG
0xff.JPG
0xff1.JPG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-23 11:51:32 | 显示全部楼层
你都说配置没问题了。
但是,不碍事的话,代码都贴出来吧
小小蜗牛
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 12:01:17 | 显示全部楼层
IC芯片去字笔 发表于 2017-8-23 11:51
看一下是不是数据类型问题,长短不一致会引起截取导致的数据错误!

数据类型的话,我修改了入口参数类型,但问题还是一样!谢谢你哈~
数据类型.JPG
数据类型1.JPG
数据类型2.JPG
数据类型22.JPG
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 12:05:09 | 显示全部楼层
jiutianshenjian 发表于 2017-8-23 11:51
你都说配置没问题了。
但是,不碍事的话,代码都贴出来吧

代码如下,谢了哈

回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 12:06:02 | 显示全部楼层
MKGilchrist 发表于 2017-8-23 12:05
代码如下,谢了哈

代码如下,谢了哈!
初始化USART1(续).JPG
初始化USART1.JPG
所有我需要的硬件初始化.JPG
主函数.JPG
回复

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
发表于 2017-8-23 12:12:30 | 显示全部楼层
本帖最后由 honglang2222 于 2017-8-23 12:14 编辑

发送函数贴出来看看
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 12:22:14 | 显示全部楼层
honglang2222 发表于 2017-8-23 12:12
发送函数贴出来看看

发送函数
发送函数.JPG
发送函数1.JPG
回复

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
发表于 2017-8-23 12:29:53 | 显示全部楼层
MKGilchrist 发表于 2017-8-23 12:06
代码如下,谢了哈!

GPIO10为什么设置成浮空输入,不应该跟9脚一样设置成复用输出吗?
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 12:47:38 | 显示全部楼层
honglang2222 发表于 2017-8-23 12:29
GPIO10为什么设置成浮空输入,不应该跟9脚一样设置成复用输出吗?

    手册上配置就是USART1 时,TX端PA9作为推挽输出,而RX端PA10作为浮空输入,我感觉应该不是配置问题,因为发送过程正常只是发送的数据的不同导致存在错误
端口复用(手册).JPG
回复

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
发表于 2017-8-23 12:57:53 | 显示全部楼层
本帖最后由 honglang2222 于 2017-8-23 12:59 编辑
MKGilchrist 发表于 2017-8-23 12:47
手册上配置就是USART1 时,TX端PA9作为推挽输出,而RX端PA10作为浮空输入,我感觉应该不是配置问题, ...

你的开发板跟PC用什么线连接的,DB9还是USB转串口
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-8-23 12:58:44 | 显示全部楼层
本帖最后由 wxjhby 于 2017-8-23 13:06 编辑

ASCII 表正好是0-7F     不知道有什么联系   第10句 写道第9句前面呢?  用战舰资料里带的串口助手试试
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 13:02:22 | 显示全部楼层
honglang2222 发表于 2017-8-23 12:57
你的开发板跟PC用什么线连接的,DB9还是USB转串口

USB转串口,不过我已经试过了用USART1和USART2,用的都是USB转串口,问题是一样的
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 13:06:16 | 显示全部楼层
wxjhby 发表于 2017-8-23 12:58
ASCII 表正好是0-7F     不知道有什么联系   第10句 写道第9句前面呢?

   9和10句翻转,问题还是一样的
9和10句翻转.JPG
9和10句翻转接收.JPG
回复

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
发表于 2017-8-23 13:07:04 | 显示全部楼层
MKGilchrist 发表于 2017-8-23 13:02
USB转串口,不过我已经试过了用USART1和USART2,用的都是USB转串口,问题是一样的

那你把PA10改成跟PA9一样的输出模式试试看
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-8-23 13:08:48 | 显示全部楼层
本帖最后由 wxjhby 于 2017-8-23 13:09 编辑

直接下战舰的历程有没有问题? 先把硬件和上位机的原因排除掉
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 13:11:13 | 显示全部楼层
honglang2222 发表于 2017-8-23 13:07
那你把PA10改成跟PA9一样的输出模式试试看

  试了,不过还是没能解决
PA10推挽输出.JPG
PA10推挽输出1.JPG
回复

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
发表于 2017-8-23 13:14:35 | 显示全部楼层
MKGilchrist 发表于 2017-8-23 13:11
试了,不过还是没能解决

你PA9 PA10有没有复用到USART上啊
QQ截图20170823131332.png
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 13:18:50 | 显示全部楼层
wxjhby 发表于 2017-8-23 13:08
直接下战舰的历程有没有问题? 先把硬件和上位机的原因排除掉

我把战舰例程中USART1初始化中开启发送和接收中断注释了,然后主函数稍作变动成我自己的,波特率也是例程的9600,不过还是出现一样的问题,你能否试一下你的开发板发送16进制0xff会不会出现和我一样的问题,谢了哈

战舰例程.JPG
战舰例程效果.JPG
回复

使用道具 举报

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-8-23
在线时间
0 小时
 楼主| 发表于 2017-8-23 13:22:18 | 显示全部楼层
honglang2222 发表于 2017-8-23 13:14
你PA9 PA10有没有复用到USART上啊

能否把GPIO_PinAFConfig函数截图给我看一下,谢了哈,我库中没有这个函数
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-8-23 13:24:37 | 显示全部楼层
本帖最后由 wxjhby 于 2017-8-23 13:25 编辑

我是问你直接用战舰的程序会不会出现这个问题? 不要去动他的程序的,不然你怎么知道是硬件还是程序还是上位机的原因?直接下载战舰程序,如果没问题那么是你写的程序有问题,再找原因,好不好  temp的类型 改为u8
回复

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
发表于 2017-8-23 13:28:40 | 显示全部楼层
MKGilchrist 发表于 2017-8-23 13:22
能否把GPIO_PinAFConfig函数截图给我看一下,谢了哈,我库中没有这个函数

这个
QQ截图20170823132800.png
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-8-23 13:31:58 | 显示全部楼层
呵呵,你用的F103 还是F407 你就听他的吧
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-8-23
在线时间
2 小时
发表于 2017-8-23 15:17:46 | 显示全部楼层
你把temp变量的类型定义成 uint8_t试一下
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-8-23 15:49:07 | 显示全部楼层
本帖最后由 jiutianshenjian 于 2017-8-23 16:06 编辑

用好的程序试试,先确定是不是你的程序问题。还有,初始化的时候,先把TC Flag标志清除下。
小小蜗牛
回复

使用道具 举报

1

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2017-5-10
在线时间
55 小时
发表于 2017-8-24 00:45:57 来自手机 | 显示全部楼层
多发几个字节看看是不是只有第一个字符有问题,有的话就是寄存器初始化后没清零。推荐如果条件可以的话先用keil的调试看看usart1的dr数据对不对,然后再用逻辑分析仪看看串口引脚,这样子定位问题快。不过个人有次出类似问题是因为时钟配置错了,你可以看看
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2017-8-24
在线时间
1 小时
发表于 2017-8-24 08:09:45 来自手机 | 显示全部楼层
顶上去………………
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-14 22:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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