OpenEdv-开源电子网

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

串口通信问题

[复制链接]

1

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-3-30
在线时间
5 小时
发表于 2017-4-7 09:37:37 | 显示全部楼层 |阅读模式
5金钱
最近处理串口数据是出现一个问题,如图:串口实验例程我想知道串口往上位机中发的数据是什么形式的。因为我做的一个东西要用到串口往上位机中发的数据,不知道数据是什么形式的不好处理。
还有,我用USART_SendData函数直接往上位机中发数字1,不显示数字1;然后我发‘1’,就显示数字1了(如果我发更大的数字比如50呢,发的数字超过9的话,这种方式就不行了,求解)。此外,
                        USART_SendData(USART1, 1+'0');         //向串口1发送数据
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                        USART_SendData(USART1, 1+'0');         //向串口1发送数据
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
加入这些代码后,理论上应该是在串口中显示两个1,结果只有1个,怎么回事,求解。


串口实验例程

串口实验例程

最佳答案

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

弄懂ASCII码,HEX十六进制,上位机显示方式等等再来思考这个问题。 提示一下,单纯的1只是0x01,而字符'1'是0x31。ASCII码有一部分是不可显示的,用上位机的文本查看方式自然显示不出来,要切换到16进制显示方式才行。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2082
金钱
2082
注册时间
2014-12-19
在线时间
711 小时
发表于 2017-4-7 09:37:38 | 显示全部楼层
弄懂ASCII码,HEX十六进制,上位机显示方式等等再来思考这个问题。
提示一下,单纯的1只是0x01,而字符'1'是0x31。ASCII码有一部分是不可显示的,用上位机的文本查看方式自然显示不出来,要切换到16进制显示方式才行。
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10912
金钱
10912
注册时间
2014-6-12
在线时间
1041 小时
发表于 2017-4-7 09:43:48 | 显示全部楼层
看样子你是要发ASCII字符,那么50是要发两个8位。
回复

使用道具 举报

1

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
618
金钱
618
注册时间
2015-11-20
在线时间
89 小时
发表于 2017-4-7 12:25:14 | 显示全部楼层
在发送第一个数据前加一句USART_ClearFlag(USART1,USART_FLAG_TC);看看
回复

使用道具 举报

6

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2016-11-1
在线时间
64 小时
发表于 2017-4-7 13:05:29 | 显示全部楼层
本帖最后由 fankai 于 2017-4-7 13:07 编辑

发数字要1位1位发,发过去只是数值,比如数值1,上位机显示的是ASCII码表中的字符,所以要转换一下比如发送50,其实是发送的数值50,上位机显示的就不是50了,而是ASCII码表中50对应的字符
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2017-4-7 16:59:56 | 显示全部楼层
USART_SendData(USART1,1);这是发送0x01
USART_SendData(USART1, '1');这是发送0x31
USART_SendData(USART1, ‘A’);==USART_SendData(USART1,0x41);  
单片机里全是二进制码,自己多想想  
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

1

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-3-30
在线时间
5 小时
 楼主| 发表于 2017-4-8 11:14:48 | 显示全部楼层
多谢各位,我已经解决了!!!
回复

使用道具 举报

2

主题

171

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3792
金钱
3792
注册时间
2016-6-26
在线时间
276 小时
发表于 2017-4-9 00:29:54 | 显示全部楼层
谢谢分享!!!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 08:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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