news 2026/4/23 15:30:24

基于ARMCortex-M4F内核的MSP432MCU开发实践【2.7】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于ARMCortex-M4F内核的MSP432MCU开发实践【2.7】
7.1.5 自动波特率检测

当UCMODEx控制位被配置为11时,就选择了带自动波特率选择的UART模式。对于UART自动波特率检测方式,在数据帧前面会有一个包含打断域和同步域的同步序列。当在总线上检测到11个或更多个0时,被识别为总线打断。如果总线打断的长度超过21位时间长度,则将置位打断超时错误标志UCBTOE。当接收打断域或同步域时,eUSCI_A不能发送数据。同步域在打断域之后,如图7-5所示。

在1字节里,同步域包含数据055h,如图7-6所示。同步是基于这种模式的第一个下降沿和最后一个下降沿之间的时间测量,如果通过置位UCABDEN控制位,将使能自动波特率检测功能,则发送波特率发生器通常用于时间的测量。否则,在该模式下只接收并不测量。测量的结果将被移送到波特率控制寄存器(UCAxBRW和UCAxMCTLW)中。如果同步域的长度超过了可测量的时间,将置位同步超时错误标志位UCSTOE。接收中断标志UCRXIFG置位后,可以读取结果。

在这种模式下,UCDORM控制位用于控制数据的接收。当UCDORM置位时,所有的数据都会被接收,但是,不会被移送到接收缓冲寄存器UCAxRXBUF中,也不会产生中断。当检测到打断域/同步域时,将会置位UCBRK打断检测标志位。在打断域和同步域之后的字符将会被发送到接收缓冲寄存器UCAxRBUF中,并置位接收中断标志位UCRXIFG。如果有错误,则相应的错误标志位被置位。如果UCBRKIE置位,打断域或同步的接收会置位UCRXIFG中断标志位。用户通过软件或读取接收缓冲寄存器UCAxRXBUF的值,可以复位UCBRK标志位。

当收到打断域和同步域时,用户必须通过软件复位UCDORM控制位,以继续接收数据。如果在此时,UCDORM仍保持置位,则只有打断域和同步域后的下一个字符能被接收。UCDORM控制位不能由eUSCI_A模块硬件自动进行修改。

当UCDORM=0时,所有的字符被接收之后,将置位接收中断标志位UCRXIFG。如果在接收一个字符期间,UCDORM控制位被清除,接收中断标志位将在该字符接收完成之后,置位接收中断标志位。

计数器用于检测波特率不大于0FFFFh(65535)的值。这意味着在超采样模式下,可检测的最小波特率是244;在低频模式下,可检测的最小波特率是15,最高可检测波特率为1M。

自动波特率检测模式能在带有某些限制的全双工系统中应用。当接收到打断域和同步域时,eUSCI_A不能发送数据。同时,如果接收到一个具有帧错误的0h字节,那么此时任何的数据发送都会遭到破坏。后一种情况可以通过检查接收数据和UCFE标志位来发现。

发送打断域和同步域的过程如下:

1)将UMODEx设置为11,并置位UCTXBRK标志位。

2)将055h写到发送缓冲寄存器UCAxTXBUF中,UCAxTXBUF必须做好接收新数据的准备(即UCTXIFG=1),并产生一个13位的打断域,随后会有打断分隔符和同步字符。打断分隔符的长度由UCDELIMx位控制。当同步字符从发送缓冲寄存器UCAxTXBUF移送到移位寄存器时,UCTXBRK将会自动复位。

3)将需要发送的数据写入发送缓冲寄存器UCAxTXBUF中,UCAxTXBUF必须做好接收新数据的准备(即UCTXIFG=1),然后数据将会移送到移位寄存器中。当移送完成后,数据会立即进行发送。

7.1.6 IrDA编码和解码

当置位UCIREN控制位时,将会使能IrDA编码器和解码器,并对IrDA通信提供硬件编码和解码。

1.IrDA编码

IrDA编码器会在UART数据流的基础上,对UART传输中的每一位0发送一个脉冲进行编码,编码方式如图7-7所示。脉冲的持续时间由UCIRTXPLx进行定义。

为了设置由IrDA标准要求的3/16位周期的脉冲时间,可通过设置UCIRTXCLK=1来选择BITCLK16时钟。之后将UCIRTXPLx配置为5,将脉冲时间设置为6个半时钟周期。

当UCIRTXCLK=0时,脉冲宽度tPULSE基于BRCLK,计算如式(7-1)所示。

UCIRTXPLx=tPULSE×2×fBRCLK-1 (7-1)

当UCIRTXCLK=0时,分频因子UCBRx必须设置为5或更大的值。

2.IrDA解码

当UCIRRXPL=0时,解码器可检测高电平或低电平。除了模拟抗尖峰脉冲滤波器,eUSCI_A内部还包含可编程数字滤波器

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:12:19

企业CIT标准化网络系统的升级管理

数字化时代的企业脉搏在数字化时代,企业网络系统如同企业的脉搏,每一次跳动都承载着信息的流动和业务的运 转。随着技术的飞速进步,网络系统的升级管理已成为企业保持竞争力的关键。今天,我们 探讨的是企业CIT标准化网络系统的升级…

作者头像 李华
网站建设 2026/4/22 22:25:50

设备边缘计算任务调度卡顿 后来动态分配CPU/GPU资源

💓 博客主页:塔能物联运维的CSDN主页目录我的物联网运维血泪史:当咖啡机开始闹离婚 【真实小错误】 物联网运维的三大“人间真实” 运维自动化:从“人肉监控”到“AI看护” 冷笑话时间 给新手的“过来人建议” 未来展望&#xff1…

作者头像 李华
网站建设 2026/4/22 18:06:31

5分钟精通Textractor:零基础掌握游戏文本提取技巧

5分钟精通Textractor:零基础掌握游戏文本提取技巧 【免费下载链接】Textractor Textractor: 是一个开源的视频游戏文本钩子工具,用于从游戏中提取文本,特别适用于Windows操作系统。 项目地址: https://gitcode.com/gh_mirrors/te/Textracto…

作者头像 李华
网站建设 2026/4/23 12:58:32

Python图像元数据管理实战指南

你知道吗?每张照片背后都隐藏着丰富的信息宝藏!从拍摄时间、相机型号到GPS定位,这些元数据就像是照片的"身份证"。今天,让我们一起探索如何用Python的Piexif库轻松驾驭这些宝贵信息。 【免费下载链接】Piexif Exif mani…

作者头像 李华
网站建设 2026/4/23 11:34:51

15、使用SimGAN和GAN实现逼真眼球生成与2D图像到3D模型转换

使用SimGAN和GAN实现逼真眼球生成与2D图像到3D模型转换 1. 使用SimGAN创建逼真眼球 1.1 生成器模型构建 在生成器模型构建中,我们需要完成一系列操作。首先是ResNet块的构建,以下是相关代码: x = layers.Add()([res_x_input_3,x]) x = Activation(relu)(x) # ResNet Bl…

作者头像 李华