打印
[STM32F1]

串口复位后,多接收一个字节。

[复制链接]
1815|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

在使用串口的时候,复位后,若果不加 第36行,则会出现丢失一个字节的情况,所以要先清除一下 TC 位,但是在 加上 36行后,也就是清除TC位后,则又出现了新的问题,会在第一个字节之前 多一个 0xff 字节,这个问题有没有遇到过的?怎么解决?

沙发
沉默胜过白金|  楼主 | 2014-8-24 23:40 | 只看该作者
没有遇到的么,再顶一下。

使用特权

评论回复
板凳
STARM| | 2014-8-25 07:43 | 只看该作者
37 和 38 行交换一下看看

使用特权

评论回复
地板
沉默胜过白金|  楼主 | 2014-8-30 18:50 | 只看该作者
STARM 发表于 2014-8-25 07:43
37 和 38 行交换一下看看

还是不行。

使用特权

评论回复
5
STARM| | 2014-8-30 20:33 | 只看该作者
注释36行, 交换37 和 38 行

使用特权

评论回复
6
STM32初学者| | 2014-8-30 20:35 | 只看该作者
我觉得是你本来就多发了一个

使用特权

评论回复
7
沉默胜过白金|  楼主 | 2014-8-31 15:16 | 只看该作者
STM32初学者 发表于 2014-8-30 20:35
我觉得是你本来就多发了一个

怎么说?哪个多发了?

使用特权

评论回复
8
myxiaonia| | 2014-8-31 17:56 | 只看该作者
st的串口开启时会有个空闲帧,请看手册

使用特权

评论回复
9
沉默胜过白金|  楼主 | 2014-8-31 21:10 | 只看该作者
myxiaonia 发表于 2014-8-31 17:56
st的串口开启时会有个空闲帧,请看手册

我看了,上电复位后,SR寄存器默认不是0x00000000,我在程序的第三十六行,也就是发送数据前清了一下,还是不行。能不能说一下,谢谢。

使用特权

评论回复
10
myxiaonia| | 2014-9-1 00:59 | 只看该作者
沉默胜过白金 发表于 2014-8-31 21:10
我看了,上电复位后,SR寄存器默认不是0x00000000,我在程序的第三十六行,也就是发送数据前清了一下,还 ...

我只知道手册说有个空闲帧

使用特权

评论回复
11
ghost2| | 2014-9-1 07:21 | 只看该作者
接收端上拉了么?

使用特权

评论回复
12
pattywu| | 2014-9-1 08:11 | 只看该作者
8楼的说法是正确的。
只要使能发送,st的串口开启时,就会发送一个空闲帧。

使用特权

评论回复
13
悲伤流逝| | 2014-9-1 13:27 | 只看该作者
楼上正解

使用特权

评论回复
14
戈卫东| | 2014-9-1 14:42 | 只看该作者
TXE信号用起来更简单。试试?

使用特权

评论回复
15
沉默胜过白金|  楼主 | 2014-9-11 15:28 | 只看该作者
pattywu 发表于 2014-9-1 08:11
8楼的说法是正确的。
只要使能发送,st的串口开启时,就会发送一个空闲帧。 ...

有什么办法不让它发送空闲帧么?

使用特权

评论回复
16
沉默胜过白金|  楼主 | 2014-9-11 15:29 | 只看该作者
悲伤流逝 发表于 2014-9-1 13:27
楼上正解

有什么方法解决这个问题么?

使用特权

评论回复
17
沉默胜过白金|  楼主 | 2014-9-11 15:30 | 只看该作者
戈卫东 发表于 2014-9-1 14:42
TXE信号用起来更简单。试试?

TXE ??? 没看懂,,,

使用特权

评论回复
18
戈卫东| | 2014-9-11 15:50 | 只看该作者
沉默胜过白金 发表于 2014-9-11 15:30
TXE ??? 没看懂,,,

STM32有TC和TXE两个信号指示发送完成,一般来说用TXE要简单一些。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:个人主页:http://bluemickeycat.top

26

主题

313

帖子

2

粉丝