本帖最后由 peterLaw 于 2023-10-13 18:34 编辑
#申请原创# @21小跑堂
大家众所周知单片机目前都标配串口通讯协议,单片机串口、串口转换芯片这些硬件知识大家都知道多少呢?尤其是对于刚接触单片机的人来说,下面我来给大家做个简单普及。
首先,先说说单片机串口TX和RX,如下图(以沁恒CH32X035MCU为例进行讲解):
PB10为TX即MCU的发送引脚,PB11为RX即MCU的接收引脚(涉及具体可以看MCU芯片引脚功能)
MCU芯片的TX和RX为TTL电平形式(即01发送形式),当TTL电平外面添加不同的芯片如MAX232
或者MAX485就将TTL电平转换成标准的232信号或者485信号,如下原理图:
当然只有标准的232信号或者485信号才能在设备之间进行传输,TTL电平说直白点就是原码,485或者232为编译后的标准设备码。
有时使用232或者485通讯出来的是乱码或者没有任何显示,大概率原因如下:
导致这种情况的原因有以下几种情况:
1、引脚接线是否正确,232接线是发送对接收,接收对另外的发送,485接线A对A,B对B;
2、波特率等串口设置是否一样;
3、接收编码以及ACSII码设置;
4、TTL电平转232或者485时,TTL电平是否共地,如果不共地就会发生问题
5、非法字符也会发生乱码,就是字库没有的字符它无法显示就会乱码
当然我这个乱码其实就是第4种情况,共GND之后就轻松正常显示,尤其是串口通讯一定要共GND,共地是给芯片提供一个参考电压0V,都基于共同的0V得到的数据才是准确的,这个道理很简单。
其实串口知识很简单,有串口不懂得可以及时留言,看到会回复,**大家多多分享知识,大家共同进步!
我的理念是:分享大家提升,大家共同进步,社会更加美好!
|