天线|RF射频|微波|雷达技术
直播中

李英

7年用户 1469经验值
私信 关注
[问答]

uln2003用作半双工485模式的时候发送会多出来00这个字节,为什么?

我将这个芯片用作485、422模式,并用继电器来控制四个脚还是两个脚
1.232发送正常;
2.422发送正常;
3.9600波特率时,会多收一包,并且发送数据到末尾多个00
4.25个字节以下不出现00

这个是串口助手显示的内容:

写的是收什么发什么的程序。用hex显示最后一位为00。
发送代码如下:

纯接收或者纯发送都没问题,就是接受完发送出来会多个00
已查出软件没啥问题,硬件原理图如下:

原理是通过继电器来控制这个芯片的模式,请问这个硬件电路有啥问题,


uln2003另一头接的是MCU

                                                                                

                                

回帖(1)

孙成红

3 天前
根据您提供的信息,您在使用ULN2003芯片作为半双工485模式时遇到了发送数据末尾多出00字节的问题。您已经排除了软件问题,那么我们可以分析一下硬件电路可能存在的问题。

1. 继电器控制问题:您提到通过继电器来控制ULN2003芯片的模式。请确保继电器的控制信号正确,且继电器的切换速度足够快,以避免在切换过程中产生干扰。另外,检查继电器的接点是否干净,以确保信号传输的稳定性。

2. 地线问题:在485通信中,地线是非常重要的。请确保您的MCU和ULN2003芯片之间的地线连接良好,以减少干扰。同时,检查您的电源地线和信号地线是否分开,以避免地线环路干扰。

3. 电源问题:请检查您的电源是否稳定,以及ULN2003芯片的供电是否充足。不稳定的电源可能会导致信号传输不稳定,从而产生额外的字节。

4. 布线问题:请检查您的布线是否合理,避免过长的信号线和过近的信号线间距,以减少信号干扰。同时,尽量使用屏蔽线,并确保屏蔽层接地。

5. 波特率问题:您提到在9600波特率时会出现问题,而在25个字节以下不出现00。这可能与波特率有关。您可以尝试调整波特率,看看是否能解决问题。

综上所述,您需要检查继电器控制、地线连接、电源稳定性、布线和波特率等方面,以找出硬件电路中可能存在的问题。希望这些建议能帮助您解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分