第12章 STC单片机串行异步收发器原理及实现(5)1
STC单片机的串行异步收发器是微控制器通信的重要组成部分,主要用于设备间的串行通信。在第12章中,我们关注的是STC单片机的串口2,它支持8位和9位UART(通用异步收发传输器)模式,其配置主要通过串口2控制寄存器S2CON来完成。 S2SM0位是决定串口2工作模式的关键。当S2SM0设为0时,串口2工作在8位UART模式,可变波特率,适合标准的数据传输;而当S2SM0设为1时,工作模式切换为9位UART模式,同样支持可变波特率,此时第9位可用于多机通信中的地址识别或奇偶校验。 S2SM2位是允许方式1多机通信的控制位。在S2SM2为1并且S2REN为1的情况下,接收机将进入地址帧选状态。若接收到的第9位(即S2RB8)为1,那么该帧被视为地址帧,数据会被放入S2BUF并触发接收中断S2RI。相反,如果S2RB8为0,则认为该帧非地址帧,数据不会被处理,S2RI保持为0。 S2REN位控制串口2的接收功能。当S2REN为1时,串行接收器RxD2启动,允许接收数据;若S2REN为0,则关闭接收,RxD2不再接收任何信息。 S2TB8位在方式1中用于发送第9位数据,这可以是校验位,也可以在多机通信中区分地址帧和数据帧,软件可以根据需求设置此位。 S2RB8位同样是第9位,但在接收时用作接收的第9位数据,可以作为校验位或多机通信中的地址/数据帧标志。如果S2SM2为0且S2REN为1,即使S2RB8的值不确定,数据也会被接收并放入S2BUF。 S2TI和S2RI是串口2的中断请求标志位。S2TI在发送停止位时置1,提示CPU有数据待发送;S2RI在接收停止位中间置1,表示有数据已接收。中断响应后,这两个标志位需由软件清除。 STC15系列单片机的串口2数据缓冲寄存器S2BUF有两个,一个用于存储待发送数据,另一个用于读取接收到的数据。写入S2BUF的数据会被加载到9位移位寄存器,前8位为有效数据,最低位为移位寄存器的输出位。根据工作模式,第9位会自动加载1或S2TB8的值。 在接收端,接收寄存器是一个输入移位寄存器。接收完整个9位数据后,数据会被载入S2BUF,第9位则载入S2CON的S2RB8位。如果S2SM2导致数据无效,S2RB8和S2BUF内容保持不变。 中断允许寄存器2(IE2)中的ES2位允许或禁止串口2中断,而IP2中的PS2位决定串口2中断的优先级,0为最低优先级,1为最高优先级。 此外,P_SW2寄存器用于配置串口4(S4_S)和串口3(S3_S)的引脚位置,以适应不同的硬件布局。 STC单片机的串行异步收发器提供了灵活的配置选项,包括工作模式、波特率、多机通信和中断管理,以适应各种通信需求。通过精确地设定和管理这些参数,可以实现高效可靠的串行通信。
剩余30页未读,继续阅读
- 粉丝: 32
- 资源: 332
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Django和HTML的新疆地区水稻产量影响因素可视化分析系统(含数据集)
- windows conan2应用构建模板
- 3_base.apk.1
- 基于STM32F103C8T6的4g模块(air724ug)
- 基于Java技术的ASC学业支持中心并行项目开发设计源码
- 基于Java和微信支付的wxmall开源卖票商城设计源码
- 基于Java和前端技术的东软环保公众监督系统设计源码
- 基于Python、HTML、CSS的crawlerdemo软件工程实训爬虫设计源码
- 基于多智能体深度强化学习的边缘协同任务卸载方法设计源码
- 基于BS架构的Java、Vue、JavaScript、CSS、HTML整合的毕业设计源码
评论0