打印

STM32F103的TXD和RXD是否要接上拉电阻?

[复制链接]
27227|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
请教各位大侠,我在用MAX3232芯片连接单片机时,一开始用PC接收数据有N多乱码。之后正常工作。
我用示波器查看管脚,接收乱码时,我的CPU的TXD并没有向外发送数据。单片机是用的STM32103F的。

怀疑是ST的芯片管脚初始化没有做好。用的是推挽输出。。。

这个乱码是怎么形成的呢?是不是一开始CPU管脚初始化的时候TXD,RXD管脚上时未知信号导致的?

所以CPU管脚处,TXD、RXD一定要接上拉电阻吗?
为什么呢?

感觉问题好低级啊。。。。。。

谢谢大家了。

TXD_RXD图.JPG (64.21 KB )

TXD_RXD图.JPG

相关帖子

沙发
清风致影| | 2012-3-29 10:34 | 只看该作者
觉得可以不加 如果pc端发乱码 可以用软件过滤掉的啊

使用特权

评论回复
板凳
waszyaw| | 2012-3-29 11:49 | 只看该作者
不用加,有用过,
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

使用特权

评论回复
地板
waszyaw| | 2012-3-29 11:51 | 只看该作者
RX配置为:
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
TX配置为:
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

使用特权

评论回复
5
diyiyuzhousu|  楼主 | 2012-3-30 13:49 | 只看该作者
谢谢楼主回复呵。不加不可以的。我原来是想不加的。TX和RX都用开漏和推挽输出试过了。都不行。
现象是在开机上电时,PC端有N多乱码。
以为是ST芯片的问题。但是。当我把ST片子程序擦除之后还是有乱码。我估计是232芯片的问题。。。
就是说一开机上电,如果TX和RX电平不确定,默认的就会有乱码出现。

其实,如果是只有1个乱码我也就认了。现在是N多。所以很无语啊。。。

使用特权

评论回复
6
Ryanhsiung| | 2012-3-30 15:36 | 只看该作者
这个乱码我也想去掉,我也说一下:
加上拉、推挽只能减少乱码的个数,没有办法彻底解决。
告诉你两个方法:
  1、找一个片子有通断RX TX功能(像2483中的RTEN TXEN脚)
  2、找一个继电器,串在RX TX脚上,上电默认RX TX断开(前提要知道芯片开机后IO的状态,可能还要加上拉、下拉)。单片机初始化后再接通。

使用特权

评论回复
评论
沉默的坚果 2020-12-24 16:31 回复TA
通信线上用继电器控制通断?成本多少了? 
7
ningling_21| | 2012-3-30 15:56 | 只看该作者
两路UART用一个232芯片,容易互相干扰...
也就出现乱码...

使用特权

评论回复
8
mohanwei| | 2012-3-30 16:07 | 只看该作者
LS两位都很有才……

使用特权

评论回复
9
dqyubsh| | 2012-3-30 16:17 | 只看该作者
单片机的TXD并没有向外发送数据,并不等于232芯片的TXD没有向外发送数据,为什么这里不做下测量?

现在散件市场上的3232都烂街了,出各种问题都不奇怪,这个芯片是不能从电子市场拿货的。如果商家说是国产的,立即扔掉,然后去正规代理商那买。。

使用特权

评论回复
10
qq65411253| | 2012-3-30 19:12 | 只看该作者
8楼把我想说的话都说了。

使用特权

评论回复
11
doit12345| | 2012-5-24 10:49 | 只看该作者
我在实际产品中也遇到此类问题,经过反复实验,在单片机的RX与TX引脚上连接一个弱上拉电阻,电阻取值在51K左右,通讯一切正常!

使用特权

评论回复
12
ayb_ice| | 2012-5-24 11:58 | 只看该作者
应该是不需要的,TXD是输出信号,自己控制,RXD是输入信号,外部控制
总之连接的双方一个是输出,一个是输入
接一个也不嫌多

使用特权

评论回复
13
gx_huang| | 2012-5-24 12:41 | 只看该作者
上电时,GPIO的状态不确定,所以有乱码。加上拉会有好处,正常不需要加。
开机的乱码需要软件协议处理,如果软件没有容错措施,说明设计有问题。

使用特权

评论回复
14
经常补钙| | 2012-5-25 18:47 | 只看该作者
TXD下拉,RXD上拉,阻值10K。还是不行检测一下3232芯片的电容是否错误

使用特权

评论回复
15
diyiyuzhousu|  楼主 | 2012-11-9 09:29 | 只看该作者
这个问题最后我还是没有完全明确。不过按照惯有的思路,我还是在txd和rxd上面加了上拉电阻。然后txd和rxd设置为了上拉电阻模式。因为出现的乱码基本不影响通讯结果。因此我没有太过于专注这个问题。暂时没有出什么问题。以后再好好解决了。谢谢大家。:)

使用特权

评论回复
16
diyiyuzhousu|  楼主 | 2012-11-9 09:32 | 只看该作者
各位老师,分不够了。。。抱歉了。。。

使用特权

评论回复
17
diyiyuzhousu|  楼主 | 2012-11-9 09:39 | 只看该作者
[img][/img]
另外再给大家一个我们调试出来的232电路。
RS232_RX_IN和RS232_TX_IN接PC端。这个tx 和rx 是CPU的管脚。RS232_RX和RS232_TX是另一个CPU的管脚。这个可以实现两个CPU都使用该接PC端口的232管脚。不过,2个CPU不能同时使用串口通讯,只能由一个进行通讯,另一个处于高阻态设置。

使用特权

评论回复
18
diyiyuzhousu|  楼主 | 2012-11-9 09:43 | 只看该作者
电路图是这样,TX RX就按照单片机标示的连接即可。

未标题-1.jpg (134.94 KB )

未标题-1.jpg

使用特权

评论回复
19
marsaire| | 2013-9-5 19:47 | 只看该作者
可能是上电的时候RS232TX端口接的管脚是高阻,然后它的值是0,0代表uart协议的起始位,所以开始传输数据了,不知是不是这个道理。
坐等大神解答。

使用特权

评论回复
20
marsaire| | 2013-9-5 19:51 | 只看该作者
还有就是看管脚初始化前是什么复用状态,tx,rx都接个上拉,保证上电的时候是连续的1,这样串口认为还没开始传输数据,应该就没问题了。

使用特权

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

本版积分规则

0

主题

14

帖子

1

粉丝