OpenEdv-开源电子网

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

求助!!关于串口的停止位

[复制链接]

8

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2018-3-1
在线时间
87 小时
发表于 2018-8-2 15:50:18 | 显示全部楼层 |阅读模式
10金钱
      今天在示波器上看串口输出波形的时候遇到了一该纠结的问题,串口发送数据时默认的停止位是1位对吧,但是从波形看来他是俩位的,这个让我很迷惑。
      下面三张图分别是F4发送‘U’(01010101)‘?’(00111111)和F1发送‘U’(01010101)的波形,蓝色画住的区域是这个数据的所有位共11位(默认8位数据,一位起始位,一位停止位,应该10位才对),绿色的是起始位,红色的是数据位,黄色的是停止位。串口是低位开始发送的嘛,所以反着发,数据是对着呢,就是停止位不为啥多了一位,我换成0.5,1.5,2位停止位,都是+1的情况,加上奇偶校验位后依然是这样,我都试过了。我以为是F4的问题换成F1依然是这种情况。难道是停止位以后的一个空闲位?
      求帮助,谢谢大家了。

IMG_20180802_111728_LI.jpg
IMG_20180802_112601_LI.jpg
IMG_20180802_153344_LI.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2018-8-2 16:44:16 | 显示全部楼层
你试试低波特率的情况,这个时间有可能是程序造成的延时,如果波特率降低,如果是延时应该是比较固定的时间,和波特率无关
回复

使用道具 举报

8

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2018-3-1
在线时间
87 小时
 楼主| 发表于 2018-8-2 17:38:21 | 显示全部楼层
jkd405 发表于 2018-8-2 16:44
你试试低波特率的情况,这个时间有可能是程序造成的延时,如果波特率降低,如果是延时应该是比较固定的时间 ...

更换波特率以后也没有效果,我换成9600,那个停止位也正好就是俩个位的宽度,高电平持续的时间也就是俩个位的时间。。。。。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2018-8-2
在线时间
0 小时
发表于 2018-8-2 22:19:01 | 显示全部楼层
遇到同样的问题,原子哥能解决一下吗?
回复

使用道具 举报

8

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2018-3-1
在线时间
87 小时
 楼主| 发表于 2018-8-3 18:05:51 | 显示全部楼层
帮帮忙呀各位 俩天了也没找到原因
回复

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-8-23
在线时间
5 小时
发表于 2018-9-6 14:07:00 | 显示全部楼层
楼主解决了吗?我也遇到这问题,看帖子应该判断TXE 或TC位导致的,但是不知道怎么解决
我即狂澜,且无法被力挽
回复

使用道具 举报

1

主题

2

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2021-1-5
在线时间
17 小时
发表于 2021-1-5 18:21:41 | 显示全部楼层
  while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);改为  while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)!=SET);
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 04:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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