完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
STM32单片机通信-串口通信编程实例学习(1)
1.串口通信 串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,占用芯片引脚资源少,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种 单工:数据只能支持在一个方向上传输 半双工:允许数据在两个方向上传输,但是一个时刻内只能允许数据在一个方向上传输,实际上是一种切换反向的单工通信。l 全双工:允许数据同时在两个方向上传输,因此全双工通信时两个单工通信方式的集合,但是要求发送设备和接收设备都有两个独立的接收和发送能力。 2.与并口通信区别 串口形容一下就是一条车道,假如传输1个字节数据,那么串口需要连续传送8次,至少需要一根信号线。 而并口就是有8个车道同一时刻能传送8位(一个字节)数据,自然最少需要8根信号线。 3.通信方式 同步通信:个人理解就是带时钟同步信号传输。例如SPI,IIC通信接口,这种方式时根据系统时钟的触发来保证数据的准确性。 异步通信:不带时钟同步信号,例如 UART(通用异步收发器),单总线,这种通信方式需要收发双方规定通信协议才能保证数据的准确性。 如下图:
(1)开始通信时,信号线为空闲(一般是高电平1),当检测到由1到0的跳变时,代表着开始对“接收时钟”计数。 (2)当计数到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”B,而不是干扰信号。 (3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0。(16是从STM32手册中波特率计算公式推导出来) (4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。….,直到全部数据位都输入。 (5)如果设置了校验位,则检测校验位P。 (6)接收到规定的数据位和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。 (7)本幀信息全部接收完,把线路上出现的高电平1作为空闲位。 (8)当信号再次变为低电平0时,开始进入下一幀数据的检测。 5.串口异步通信发送数据过程 发送端以“发送时钟”和“波特率因子”决定一位的时间长度。相当于是接收端的数据检测周期。 (1)当串口设备初始化后,或者没有数据需要发送时,发送端输出逻辑1,即空闲位。 (2)当需要发送数据时,发送端首先输出逻辑0,作为起始位。 (3)然后发送端首先发送D0位,直到各数据位发送完。 (4)如果需要的话,发送端会输出校验位。 (5)最后,发送端输出停止位(逻辑1)。 (6)如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。如果还有信息需要发送,转入第(2)步。 总之发送和接收都是以起始电平0开始和结束标志电平1结束。在起始和结束位之间则就是数位奇偶校验位。 起始位、校验位、停止位、空闲位的信号,由“发送移位寄存器”自动插入。在接收方,“接收移位寄存器”接收到一帧完整信息(起始、数据、校验、停止)后,仅把数据的各位送至“数据输入寄存器”,即CPU从“数据输入寄存器”中读得的信息,只是有效数字,不包含起始位、校验位、停止位信息。 |
|||
|
|||
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1847浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
609浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
507浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
488浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:03 , Processed in 0.509375 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号