OpenEdv-开源电子网

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

原子的串口程序写的有问题

[复制链接]

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2015-3-23
在线时间
27 小时
发表于 2017-7-16 17:46:08 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 longe2 于 2017-7-16 18:00 编辑

注册好久了,第一次发帖。最近因为项目原因,回过头研究串口通信,烧写原子的串口通信程序到原子的开发板后,通信出现问题。1.串口无限发送。
2.发送乱码。
捕获.PNG
原子精英板,串口通信试验。

实验4 串口实验.rar

1.99 MB, 下载次数: 224

最佳答案

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

要有死循环!!!,main函数不能return!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-16 17:46:09 | 显示全部楼层
要有死循环!!!,main函数不能return!
回复

使用道具 举报

0

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1216
金钱
1216
注册时间
2016-7-17
在线时间
143 小时
发表于 2017-7-16 17:49:08 | 显示全部楼层
本帖最后由 虾兵蟹将 于 2017-7-16 17:52 编辑

你串口助手的波特率设置跟你代码的波特率设置不匹配,而且代码本身就设置了死循环,会不断的发送数据。
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2015-3-23
在线时间
27 小时
 楼主| 发表于 2017-7-16 17:57:51 | 显示全部楼层
本帖最后由 longe2 于 2017-7-16 18:01 编辑
虾兵蟹将 发表于 2017-7-16 17:49
你串口助手的波特率设置跟你代码的波特率设置不匹配,而且代码本身就设置了死循环,会不断的发送数据。

仓促之间截得图,没注意到这个,不过这不是重点。C:\Users\dell\Desktop 捕获.PNG
回复

使用道具 举报

0

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1216
金钱
1216
注册时间
2016-7-17
在线时间
143 小时
发表于 2017-7-16 18:04:13 | 显示全部楼层
longe2 发表于 2017-7-16 17:57
仓促之间截得图,没注意到这个,不过这不是重点。

波特率设置不对就会出现乱码
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2015-3-23
在线时间
27 小时
 楼主| 发表于 2017-7-16 18:08:18 | 显示全部楼层
虾兵蟹将 发表于 2017-7-16 18:04
波特率设置不对就会出现乱码

波特率是一样的 捕获.PNG
回复

使用道具 举报

0

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1216
金钱
1216
注册时间
2016-7-17
在线时间
143 小时
发表于 2017-7-16 18:19:12 | 显示全部楼层
longe2 发表于 2017-7-16 18:08
波特率是一样的

试试两边都改成115200,看会不会出现乱码
回复

使用道具 举报

1

主题

374

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1310
金钱
1310
注册时间
2014-7-23
在线时间
418 小时
发表于 2017-7-16 20:24:34 | 显示全部楼层
为毛主函数没有大循环。。。。。。。。。
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2530
金钱
2530
注册时间
2016-3-6
在线时间
392 小时
发表于 2017-7-16 20:53:53 | 显示全部楼层
你上传的是原子的例程?
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

2

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2016-2-25
在线时间
27 小时
发表于 2017-7-16 20:59:34 来自手机 | 显示全部楼层
串口本身就会存在数据丢失或者错误,所以才会有校验,甚至是跑协议,而且就算有校验也只能知道数据发错了,而不能纠错。看截图,串口的数据大多是正确的,偶尔出现乱码,建议看下时钟是否有一点点偏差,比如一边是9700,一边是9500,还看一下接线是否牢靠,接线不可靠也会误码,还有看一下是不是串口的线旁边有干扰,或者电源不是很好,有时候串口线旁边有一根辐射很强的线的话,也很容易被干扰,串口的感觉就是简单,但不是很可靠,所以后来才有了485之类的。
回复

使用道具 举报

5

主题

266

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1526
金钱
1526
注册时间
2016-7-20
在线时间
155 小时
发表于 2017-7-17 09:25:51 | 显示全部楼层
guset_03 发表于 2017-7-16 20:24
为毛主函数没有大循环。。。。。。。。。

一样的想问,while(1)是不是迷路了
我是可以什么都不说 ,但不可以什么都不做。
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2015-3-23
在线时间
27 小时
 楼主| 发表于 2017-7-17 10:48:45 | 显示全部楼层
18811707971 发表于 2017-7-16 20:53
你上传的是原子的例程?

是的
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2015-3-23
在线时间
27 小时
 楼主| 发表于 2017-7-17 10:50:15 | 显示全部楼层
忘月19920216 发表于 2017-7-16 20:59
串口本身就会存在数据丢失或者错误,所以才会有校验,甚至是跑协议,而且就算有校验也只能知道数据发错了, ...

谢谢回答,不过好像和这些没关系。干扰的问题基本不存在,波特率我发誓绝对是一样的。
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2015-3-23
在线时间
27 小时
 楼主| 发表于 2017-7-17 10:51:11 | 显示全部楼层
虾兵蟹将 发表于 2017-7-16 18:19
试试两边都改成115200,看会不会出现乱码

试了,一样
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3761
金钱
3761
注册时间
2015-4-26
在线时间
761 小时
发表于 2017-7-17 10:58:57 | 显示全部楼层
别看ascii,看十六进制 这个地方接收到的是什么
我有故事,你有酒吗
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-2-26
在线时间
14 小时
发表于 2017-7-17 11:06:10 | 显示全部楼层
串口的发送本来就是有可能会传输错误的。所以可以用485试试,这个比较靠谱,传输距离也比较远
回复

使用道具 举报

35

主题

181

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1115
金钱
1115
注册时间
2016-8-1
在线时间
235 小时
发表于 2017-7-17 12:51:46 | 显示全部楼层
你这样说会被人打的
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-7-17 13:24:00 | 显示全部楼层
真正传输数据是要跑协议的,串口直接传输数据,数据过快就像你这样相当于无限发送是会出现乱码的现象,不过肯定都是最后一位乱掉,可能是最后一位接收不全,最后要说的是串口例程是没问题的
回复

使用道具 举报

3

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2015-3-17
在线时间
23 小时
发表于 2017-7-17 14:31:53 | 显示全部楼层
可能你不知道把哪改了吧,再好好调调吧
回复

使用道具 举报

0

主题

145

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2017-6-19
在线时间
55 小时
发表于 2017-7-17 15:19:49 | 显示全部楼层
你听说过误码率吗
回复

使用道具 举报

23

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-1-25
在线时间
83 小时
发表于 2017-7-17 15:49:45 | 显示全部楼层
不断的重复发送,肯定是程序在执行,但是没有while(1)的循环,你debug看一下,程序怎么执行的,加一个停止判断
回复

使用道具 举报

14

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
449
金钱
449
注册时间
2017-3-31
在线时间
118 小时
发表于 2017-7-17 17:19:20 | 显示全部楼层
就想知道你没有while(1)程序不会跑飞么
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-18 22:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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