OpenEdv-开源电子网

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

串口数据设置为8位,加上一个起始位和一个停止位,应该是十位,为什么发送出来的是十一位

[复制链接]

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-11-10
在线时间
5 小时
发表于 2015-11-10 16:03:20 | 显示全部楼层 |阅读模式
5金钱

最佳答案

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

回复【2楼】emWin: --------------------------------- 问题以解决: 原因是每次发送都是采用以下语句来判断 while( USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET ); 这条语句检测到完成标志时 会产生 断开符 会在后面自行插多一个停止位进去,才造成有两个停止位的现象!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-11-10
在线时间
5 小时
 楼主| 发表于 2015-11-10 16:03:21 | 显示全部楼层
回复【2楼】emWin:
---------------------------------
问题以解决:

原因是每次发送都是采用以下语句来判断
while( USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET );
这条语句检测到完成标志时 会产生 断开符 会在后面自行插多一个停止位进去,才造成有两个停止位的现象!!
回复

使用道具 举报

18

主题

422

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1139
金钱
1139
注册时间
2014-5-24
在线时间
116 小时
发表于 2015-11-10 17:59:46 | 显示全部楼层
图1波形正确,猜测高电平是由发送间隔产生的。
I See Fire.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.  只给方向,不妨碍思考
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11554
金钱
11554
注册时间
2014-4-1
在线时间
1317 小时
发表于 2015-11-11 22:38:05 | 显示全部楼层
下降沿,分明是起始位!
回复

使用道具 举报

18

主题

422

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1139
金钱
1139
注册时间
2014-5-24
在线时间
116 小时
发表于 2015-11-12 09:36:42 | 显示全部楼层
回复【3楼】umbra:
---------------------------------
我不能判断你的推论,请指明依据出处?
I See Fire.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.  只给方向,不妨碍思考
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-11-10
在线时间
5 小时
 楼主| 发表于 2015-11-13 09:08:20 | 显示全部楼层
回复【5楼】emWin:
---------------------------------
断开符号
设置SBK可发送一个断开符号。断开帧长度取决M位(见图249)。如果设置SBK=1,在完成当前
数据发送后,将在TX线上发送一个断开符号。断开字符发送完成时(在断开符号的停止位
时)SBK被硬件复位。USART在最后一个断开帧的结束处插入一逻辑’1’,以保证能识别下一帧的
起始位。


在我发送一个数据包,在前面在数据都是使用while( USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET );来判断,数据位长度正确;
在最后一个字节是使用while( USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET );来判断的,其在停止位后面又插多了一个“1”
回复

使用道具 举报

18

主题

422

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1139
金钱
1139
注册时间
2014-5-24
在线时间
116 小时
发表于 2015-11-13 09:28:00 | 显示全部楼层
回复【6楼】umbra:
---------------------------------
抱歉,首段文字没有问题,但不是这个场景,且USART_GetFlagStatus()源码没有触发SBK。
I See Fire.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.  只给方向,不妨碍思考
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-11-10
在线时间
5 小时
 楼主| 发表于 2015-11-13 09:58:04 | 显示全部楼层
回复【7楼】emWin:
---------------------------------
那你觉得是哪方面的原因导致出现这种问题呢??
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-10-20
在线时间
0 小时
发表于 2015-11-16 20:27:28 | 显示全部楼层
回复【3楼】umbra:
---------------------------------
请问你的仿真波形是怎么出来的?用的啥软件?
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-11-10
在线时间
5 小时
 楼主| 发表于 2015-11-17 10:36:52 | 显示全部楼层
回复【9楼】幸福来敲门:
---------------------------------
网上买的逻辑分析仪
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 01:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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