标准串口样子:
特点:只需要一对数据线,大大降低成本,适用于远距离通信,传输速度慢
传输方式:
单工:使用一根传输线,发送和接受方已经规定好
半双工:使用一根传输线,发送和接收方身份可以互换,但是一端不能同时是接受和发送方
全双工:两根传输线,一根用来接受,一根用来发送
传输通信方式:
异步通信:(一般都是这个)
数据一位一位地顺序传送,起始位开始,停止位结束,字符之间没有固定的时间间隔要求
位:停止位,数据位,校验位(奇校验 偶校验)
1.停止位和空闲位都规定位高电平
2.停止位:1比特,或1比特半,或2比特的停止位,后边是不定长的空闲位
3.双方要使用同一个波特率设置
(为什么没有时间要求,仍然要设置波特率呢:每个消息分为几种不同的位,为了保证位同步,保证发送的单位字节传输成功
步通信其实也是有时序要求的。只是要求较低,保证位同步即可。为了建立基本的通信,如果两个人语速不一样,有时候相差太大,会容易误解的)
异步通信还要设置波特率?_深入理解同步/异步通信_xuewei_Li的博客-CSDN博客
同步通信:
所谓同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。
同步通信把许多字符组成一个信息组,或称为信息帧,每帧的开始用同步字符来指示。由于发送和接收的双方采用同一时钟,所以在传送数据的同时还要传送时钟信号,以便接收方可以用时钟信号来确定每个信息位。如果没有数据传输,线路上采用专用的“空闲字符”或者同步字符填充。因为数据位比例大,位数不受限制,通信效率高,但是需要精确的同步时钟,成本比较高。
比较重要的引脚:
RXD:接受外部设备传来的数据
TXD:将计算机的数据发送给外部数据
GND:接地
注意:不同标准的接口必须使用转接口
几种标准:
RS-232 :最早的标准 接口22根线 25芯D型插头座 点对点 距离和速度都很慢 适合本地设备通信
RS-422 :支持点对多双向通信 最大传输距离1219米 传输速率10mb/s,只有在短距离才能传输速度快
RS-485 :多点双向通信 做多连接32个设备 速度距离和RS-422差不多
注意:不要带电插拔串口,容易损坏
基本配置步骤:
时钟初始化
开启中断,中断函数(非必要)
初始化gpio端口配置
1.串口IO引脚配置 选择引脚
2.允许使用复用功能
3.复用推挽输出
4.上拉的电平
初始化串口配置
1.波特率设置
2.设置串口数据格式 8位 9位
3.设置停止位长度
4.设置有无校验位
5.硬件数据流控制 处理速度不匹配导致的数据丢失
6.选择串口模式:接受 发送
接受数据,发送数据
几个常见标志位:
1.接受数据寄存器非空标志位 0没有数据 1收到数据
2.发送数据寄存器空标志位 0还没有发送 1已经发送
3.发送完成标志位 0发送还未完成 1发送完成
串口通信注意点:
1.初始化完成,立刻清除缓冲区
2.windows换行是\r\n
3.串口轮询接受,如果速度不够快,就会导致丢掉一部分字符