问题:上位机端通过ZigBee模块给单片机端发送信息,单片机端接收异常。
问题分析:
1、两个ZigBee模块通过USB转TTL模块连接在电脑端分别收发是没有问题的,说明模块本身没有问题。
2、但是一个连接在单片机上就不行,难道是程序的问题吗,不能接受之后立刻发送?但是通过串口线证明了单片机程序没有问题。
3、连接同样的引脚,蓝牙模块和转接口都是没有问题的。
4、从3.3V换到5伏电源也不行。
5、从点对点切换到两个都为广播模式也不可以。
5、串口3可以,串口1、2不可以。
结论:ZigBee模块是TTL电平通信,板子上的串口1和串口2分别连接了CH340和485芯片(转接口),电平标准不一样。串口3没有转接口,所以串口3收发正常,串口1和串口2接收异常。
直接连接引脚也不可以,因为信号不知道要走哪条路。
在电子电路中,模块之间常使用TTL的电平标准,但其抗干扰能力较弱,为了增加串口的通讯距离及抗干扰能力,使用RS-232电平标准在设备之间传输信息,经常使用MA3232芯片对TTL电平及RS-232电平进行相互转换。(参考ch340串口驱动_STM32F103 串口的使用方法_weixin_39923572的博客-CSDN博客
通讯标准 | 电平标准(发送端) | 备注 |
5V TTL | 逻辑1 : 2.4V-5V | 一条线 |
逻辑0 : 0-0.5V | ||
RS-232 | 逻辑1: -15V~-3V | DB9 |
逻辑0: 3V~15V | ||
RS-485 | 逻辑1: 两线间的电压差为+(2~6)V | 两条线A\B |
逻辑0: 两线间的电压差为-(2~6)V |
CH340:是一个USB总线的转接芯片,实现USB转串口。CH340提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。扩展:芯片正常工作时,需要外部向XI引脚提供112MHZ的时钟信号,其他资料:CH340g使用说明详解 - 全文 - 应用电子电路 - 电子发烧友网