diyiyuzhousu 发表于 2012-3-29 08:59

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

请教各位大侠,我在用MAX3232芯片连接单片机时,一开始用PC接收数据有N多乱码。之后正常工作。
我用示波器查看管脚,接收乱码时,我的CPU的TXD并没有向外发送数据。单片机是用的STM32103F的。

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

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

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

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

谢谢大家了。

清风致影 发表于 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;

diyiyuzhousu 发表于 2012-3-30 13:49

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

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

Ryanhsiung 发表于 2012-3-30 15:36

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

ningling_21 发表于 2012-3-30 15:56

两路UART用一个232芯片,容易互相干扰...
也就出现乱码...

mohanwei 发表于 2012-3-30 16:07

LS两位都很有才……

dqyubsh 发表于 2012-3-30 16:17

单片机的TXD并没有向外发送数据,并不等于232芯片的TXD没有向外发送数据,为什么这里不做下测量?

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

qq65411253 发表于 2012-3-30 19:12

8楼把我想说的话都说了。

doit12345 发表于 2012-5-24 10:49

我在实际产品中也遇到此类问题,经过反复实验,在单片机的RX与TX引脚上连接一个弱上拉电阻,电阻取值在51K左右,通讯一切正常!

ayb_ice 发表于 2012-5-24 11:58

应该是不需要的,TXD是输出信号,自己控制,RXD是输入信号,外部控制
总之连接的双方一个是输出,一个是输入
接一个也不嫌多

gx_huang 发表于 2012-5-24 12:41

上电时,GPIO的状态不确定,所以有乱码。加上拉会有好处,正常不需要加。
开机的乱码需要软件协议处理,如果软件没有容错措施,说明设计有问题。

经常补钙 发表于 2012-5-25 18:47

TXD下拉,RXD上拉,阻值10K。还是不行检测一下3232芯片的电容是否错误

diyiyuzhousu 发表于 2012-11-9 09:29

这个问题最后我还是没有完全明确。不过按照惯有的思路,我还是在txd和rxd上面加了上拉电阻。然后txd和rxd设置为了上拉电阻模式。因为出现的乱码基本不影响通讯结果。因此我没有太过于专注这个问题。暂时没有出什么问题。以后再好好解决了。谢谢大家。:)

diyiyuzhousu 发表于 2012-11-9 09:32

各位老师,分不够了。。。抱歉了。。。

diyiyuzhousu 发表于 2012-11-9 09:39


另外再给大家一个我们调试出来的232电路。
RS232_RX_IN和RS232_TX_IN接PC端。这个tx 和rx 是CPU的管脚。RS232_RX和RS232_TX是另一个CPU的管脚。这个可以实现两个CPU都使用该接PC端口的232管脚。不过,2个CPU不能同时使用串口通讯,只能由一个进行通讯,另一个处于高阻态设置。

diyiyuzhousu 发表于 2012-11-9 09:43

电路图是这样,TX RX就按照单片机标示的连接即可。

marsaire 发表于 2013-9-5 19:47

可能是上电的时候RS232TX端口接的管脚是高阻,然后它的值是0,0代表uart协议的起始位,所以开始传输数据了,不知是不是这个道理。
坐等大神解答。

marsaire 发表于 2013-9-5 19:51

还有就是看管脚初始化前是什么复用状态,tx,rx都接个上拉,保证上电的时候是连续的1,这样串口认为还没开始传输数据,应该就没问题了。
页: [1] 2
查看完整版本: STM32F103的TXD和RXD是否要接上拉电阻?