标题: 关于单片机串口发送中没有发送数据时一直处于低电平状态的问题 [打印本页]

作者: 0711zhao    时间: 2022-4-18 10:50
标题: 关于单片机串口发送中没有发送数据时一直处于低电平状态的问题
最近遇到个问题单片机串口使用时,发现发送脚(TX),没有发送数据时一直处于低电平状态,发送数据时也能正常发送,一般的串口发送脚没有发送数据时为高电平,这是什么情况。是我初始化不对,还是另外有原因?
然后我就查看资料发现手册里有一句话
TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的 I/O 端口配置。当发送器被激活,并且不发送数据时,TX 引脚处于高电平。

这里面的是指的那个使能?是串口初始化的那个使能吗? 然后我找的用户手册里面的发现这个是USART_CTRL1里面的
UEN位,
USART 使能(USART enable)。
当该位被清零,在当前字节传输完成后 USART 的分频器和输出停止工作,以
减少功耗。该位由软件设置和清零。
0:USART 禁用。
1:USART 使能。
然后TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的 I/O 端口配置。当发送器被激活,并且不发送数据时,TX 引脚处于高电平。里面的提到的是这个发送使能是什么呢?我又在手册里找的发送器
当发送使能位(TXEN)被置位时,且缓冲区内有数据,发送器根据 WL 位的状态发送 8 位或 9 位的数据字。发送移位寄存器中的数据在 TX 脚上输出,相应的时钟脉冲在 CK 脚上输出。
我就在想这里面的发送使能是不是指的这个发送器的使能呢?
有没有大佬能指点下?

1.png (93.16 KB, 下载次数: 79)

1.png

2.png (104.61 KB, 下载次数: 62)

2.png

作者: 0711zhao    时间: 2022-4-18 10:57
最近又在20.3.1. UART 特性描述 里面看到
字长可以通过编程 UART_CCR 寄存器中的 CHAR 位,选择 5 ~ 8 位。在起始位期间,TX 脚处于低电平,在停止位期间处于高电平。
这句,是不是就是说当不发送的时候就是低电平?

作者: 0711zhao    时间: 2022-4-18 11:53
刚才发现要是这样的话
结论就是:开始发送数据时才会发出高电平,空闲时输出的是低电平是吗?
那就不对啊
作者: 188610329    时间: 2022-4-18 14:16
起始位(低电平) + 数据位(5-8位) + 停止位(高电平)没毛病。
作者: 0711zhao    时间: 2022-4-18 14:24
188610329 发表于 2022-4-18 14:16
起始位(低电平) + 数据位(5-8位) + 停止位(高电平)没毛病。

问题是空闲的时候应该是高电平啊。不然没办法检测的起始位信号
作者: 188610329    时间: 2022-4-18 14:34
里面哪句话说空闲时低电平了?
作者: 0711zhao    时间: 2022-4-18 15:04
188610329 发表于 2022-4-18 14:34
里面哪句话说空闲时低电平了?

空闲的时候是低电平 是我现在发现的情况 手册里没有这样的说明
作者: yzwzfyz    时间: 2022-4-18 15:45
1、这里面的是指的那个使能?
答:串口是单片机内部的一个模块,当你给它供电并准备好工作时,就是【使能】了。
许多单片机一上电,有已【使能】了,如51系列。
有些高档单片机却必须通过选择才能【使能】。

2、是串口初始化的那个使能吗? 然后我找的用户手册......
答:明显吧,它说能“减少功耗”不就是切断模块的全部或部分电源吗。这是属于串口需要选择的类型。
这种类型,多半是由于IO口是复用的(多功能的),即可以不作串口使用,这时是IO口是低电平就不奇怪了。

3、里面的提到的是这个发送使能是什么呢?我又在手册......
答:仅为发送使能,并未对接收下定论。

楼主习惯很好,手册是最准确的师,如果手册的有疑惑,则一定是经过分析而不解的,一定是某个知识点不坚定或丢失。一旦解决则大大进步。给楼主点赞一下!
作者: munuc_w    时间: 2022-4-18 16:08
uart在空闲时,TX端是高电平。不然的话,板子存在问题。
作者: 188610329    时间: 2022-4-18 18:51
0711zhao 发表于 2022-4-18 15:04
空闲的时候是低电平 是我现在发现的情况 手册里没有这样的说明

如果, 你在串口空闲时, 测量你认为是串口的引脚 实际测出电压是 低电平.  有以下三种可能。
1) 电路有问题,对地短路,碰线,包括与之连接的串口设备有问题等等。(此概率和你的硬件知识及动手能力成反比)
2) 串口输出设置有问题, 不知道你的单片机型号, 很多单片机串口有输出引脚设置,还会有其他组件抢占串口引脚,这个问题需要你自行查阅手册来确认。(此概率较高)
3) 单片机损坏(此概率极低)
作者: 0711zhao    时间: 2022-4-19 09:00
188610329 发表于 2022-4-18 18:51
如果, 你在串口空闲时, 测量你认为是串口的引脚 实际测出电压是 低电平.  有以下三种可能。
1) 电路有 ...

问题找到啦。
这个不初始化就会出输出高电平,反之不发数据也是低电平,0.6V,有些串 口又是0.9V
但是这为什么还有研究中。[img][/img]

1.png (113.33 KB, 下载次数: 67)

1.png





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1