STM32F103的TXD和RXD是否要接上拉电阻?
请教各位大侠,我在用MAX3232芯片连接单片机时,一开始用PC接收数据有N多乱码。之后正常工作。我用示波器查看管脚,接收乱码时,我的CPU的TXD并没有向外发送数据。单片机是用的STM32103F的。
怀疑是ST的芯片管脚初始化没有做好。用的是推挽输出。。。
这个乱码是怎么形成的呢?是不是一开始CPU管脚初始化的时候TXD,RXD管脚上时未知信号导致的?
所以CPU管脚处,TXD、RXD一定要接上拉电阻吗?
为什么呢?
感觉问题好低级啊。。。。。。
谢谢大家了。 觉得可以不加 如果pc端发乱码 可以用软件过滤掉的啊 不用加,有用过,
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; RX配置为:
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
TX配置为:
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; 谢谢楼主回复呵。不加不可以的。我原来是想不加的。TX和RX都用开漏和推挽输出试过了。都不行。
现象是在开机上电时,PC端有N多乱码。
以为是ST芯片的问题。但是。当我把ST片子程序擦除之后还是有乱码。我估计是232芯片的问题。。。
就是说一开机上电,如果TX和RX电平不确定,默认的就会有乱码出现。
其实,如果是只有1个乱码我也就认了。现在是N多。所以很无语啊。。。 这个乱码我也想去掉,我也说一下:
加上拉、推挽只能减少乱码的个数,没有办法彻底解决。
告诉你两个方法:
1、找一个片子有通断RX TX功能(像2483中的RTEN TXEN脚)
2、找一个继电器,串在RX TX脚上,上电默认RX TX断开(前提要知道芯片开机后IO的状态,可能还要加上拉、下拉)。单片机初始化后再接通。 两路UART用一个232芯片,容易互相干扰...
也就出现乱码... LS两位都很有才…… 单片机的TXD并没有向外发送数据,并不等于232芯片的TXD没有向外发送数据,为什么这里不做下测量?
现在散件市场上的3232都烂街了,出各种问题都不奇怪,这个芯片是不能从电子市场拿货的。如果商家说是国产的,立即扔掉,然后去正规代理商那买。。 8楼把我想说的话都说了。 我在实际产品中也遇到此类问题,经过反复实验,在单片机的RX与TX引脚上连接一个弱上拉电阻,电阻取值在51K左右,通讯一切正常! 应该是不需要的,TXD是输出信号,自己控制,RXD是输入信号,外部控制
总之连接的双方一个是输出,一个是输入
接一个也不嫌多 上电时,GPIO的状态不确定,所以有乱码。加上拉会有好处,正常不需要加。
开机的乱码需要软件协议处理,如果软件没有容错措施,说明设计有问题。 TXD下拉,RXD上拉,阻值10K。还是不行检测一下3232芯片的电容是否错误 这个问题最后我还是没有完全明确。不过按照惯有的思路,我还是在txd和rxd上面加了上拉电阻。然后txd和rxd设置为了上拉电阻模式。因为出现的乱码基本不影响通讯结果。因此我没有太过于专注这个问题。暂时没有出什么问题。以后再好好解决了。谢谢大家。:) 各位老师,分不够了。。。抱歉了。。。
另外再给大家一个我们调试出来的232电路。
RS232_RX_IN和RS232_TX_IN接PC端。这个tx 和rx 是CPU的管脚。RS232_RX和RS232_TX是另一个CPU的管脚。这个可以实现两个CPU都使用该接PC端口的232管脚。不过,2个CPU不能同时使用串口通讯,只能由一个进行通讯,另一个处于高阻态设置。 电路图是这样,TX RX就按照单片机标示的连接即可。 可能是上电的时候RS232TX端口接的管脚是高阻,然后它的值是0,0代表uart协议的起始位,所以开始传输数据了,不知是不是这个道理。
坐等大神解答。 还有就是看管脚初始化前是什么复用状态,tx,rx都接个上拉,保证上电的时候是连续的1,这样串口认为还没开始传输数据,应该就没问题了。
页:
[1]
2