0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CW32单片机UART波特率设置介绍

jf_pJlTbmA9 来源:武汉芯源半导体 作者:武汉芯源半导体 2023-10-24 17:35 次阅读

一、波特率介绍

波特率表示单位时间内传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,即指一个单位时间内传输符号的个数(Baud,单位符号:Bd)。

CW32L083 内部集成 6 个通用异步收发器 (UART),支持异步全双工、同步半双工和单线半双工模式,支持硬件数据流控和多机通信;可编程数据帧结构,可以通过小数波特率发生器提供宽范围的波特率选择。UART 控制器工作在双时钟域下,允许在深度休眠模式下进行数据的接收,接收完成中断可以唤醒 MCU 回到运行模式。

波特率发生器框图如下:

wKgaomUDx9OANavkAAB-_Nzf6Oo264.png

二、波特率设置

1.同步半双工模式下

波特率计算公式:BaudRate = UCLK / 12

其中,UCLK 是 UART 的传输时钟,其来源可以是 PCLK、LSE 或 LSI,通过控制寄存器 UARTx_CR2 的 SOURCE 位域来选择。

2.异步模式下

UART 的接收和发送波特率是相同的,由同一个波特率发生器产生。波特率发生器支持 16 倍采样、8 倍采样、4 倍采样和专用采样这 4 种采样模式,具体的采样模式通过控制寄存器 UARTx_CR1 的 OVER 位域来选择。UCLK是 UART的传输时钟,其来源可以是 PCLK、LSE或 LSI,具体来源通过 UARTx_CR2.SOURCE来选择。BRRI(UARTx_BRRI[15:0]),是波特率计数器的整数部分,可设置范围为 1 ~ 65535。BRRF(UARTx_BRRF[3:0]),是波特率计数器的小数部分,可设置范围为 0 ~ 15。

OVER = 00,设置 16 倍采样,波特率计算公式:BaudRate = UCLK / ( 16×BRRI + BRRF )

OVER = 01,设置 8 倍采样,波特率计算公式:BaudRate = UCLK / ( 8×BRRI )

OVER = 10,设置 4 倍采样,波特率计算公式:BaudRate = UCLK / ( 4×BRRI )

OVER = 11,设置专用采样,波特率计算公式:BaudRate = ( 256×UCLK ) / BRRI

专用采样仅适合传输时钟源为 LSE 或者 LSI 时,进行 2400bps、4800bps 或 9600bps 波特率下的 UART 通信。

UCLK 为 24MHz 波特率设置示例(OVER = 00)

wKgaomUDx9SAYmwxAACmbb3ltyA280.png

UCLK 为 32.768kHz 波特率设置示例(OVER = 11)

wKgaomUDx9aAO1gsAABRIMMDGCc344.png

3.波特率自动检测

CW32L083 使用 UART 作为从机进行通信时,可以通过自动波特率检测的方法,自动适应 UART 主机的波特率。可将通用定时器(GTIM)的输入捕获来源配置为 UART 的 RXD 信号,或者将 GTIM 的门控信号配置为 UART 的 RXD 信号,配合使用相关软件算法测量 UART 的波特率,以实现波特率自适应。

三、波特率计数器寄存器定义

1.UARTx_BRRI 波特率计数器整数部分寄存器

Address offset: 0x0C  Reset value: 0x0000 0000

wKgZomUDx9eAKzV1AABNFLKNDYY956.png

2.UARTx_BRRF 波特率计数器小数部分寄存器

Address offset: 0x10  Reset value: 0x0000 0000

wKgZomUDx9mAIiX8AABKpOeKHzs615.png

四、波特率设置举例

当传输时钟 UCLK 的频率为 24MHz 时,要求配置 BaudRate = 115200 bps,计算 16×BRRI + BRRF = 24000000 / 115200 = 208.33 则:

BRRI = 208.33 / 16 = 13.02,最接近的整数是:13(0x0D)

BRRF = 0.02×16 = 0.32,最接近的整数是:0(0x00)

即需要设置 UARTx_BRRI 为 0x0D,UARTx_BRRF 为 0x00 此时,实际波特率 BaudRate = 115384.62 bps,误差率为 0.16%。

来源:武汉芯源半导体

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6002

    文章

    43980

    浏览量

    620888
  • uart
    +关注

    关注

    22

    文章

    1159

    浏览量

    99973
  • 波特率
    +关注

    关注

    2

    文章

    281

    浏览量

    33762
收藏 人收藏

    评论

    相关推荐

    单片机原理及应用: 波特率#单片机

    单片机波特率波特率发生器
    学习硬声知识
    发布于 :2022年11月06日 15:02:57

    单片机原理与应用: 波特率计算#单片机

    单片机波特率波特率发生器
    学习硬声知识
    发布于 :2022年11月08日 19:07:59

    51单片机双机通信中的波特率

    单片机双机通信中的波特率怎么设置?怎么算的?两边的波特率可以不同的吗?求大神解答!
    发表于 07-03 15:09

    使用stc90c516rd+单片机产生115200的串口波特率

    本人最近一直在调试stc90c516rd+单片机的串口,想要115200的串口波特率,但是晶振是11.0592M。苦于一直没法实现,后来发现了一个方法可以实现,单片机运行在6T情况下
    发表于 06-12 16:36

    请问HC05的波特率单片机波特率不同会有什么后果?

    HC05配置的波特率单片机配置额波特率不同,那么这个蓝牙模块发送出去的数据的波特率会是多少?因为最近做一个二次开发的项目,他们的单片机
    发表于 03-15 05:33

    请问怎么用单片机设置给gps模块的波特率为9600?

    51单片机与ATK-NEO-6M GPS模块进行串口通信是接收不到信息。请问原子哥如何用单片机设置给gps模块的波特率为9600?(单片机晶振为11.0592M;void sys_in
    发表于 05-16 01:40

    UART_EDMA3波特率怎么设置

    6748给的UART2_EDMA3例程中,程序中我没找到关于波特率设置。与PC通信,当串口助手设置波特率115200的时候,接收数据不正确
    发表于 03-20 09:56

    51单片机的串口波特率测试提问

    接收就会出错;一开始我以为是波特率设置的问题,就去找单片机的数据手册改波特率,结果无论我怎么改,最后的结果也是和我这个一样的,否者就是更差。那么问题来了,难道是因为我的晶振用的12M忽
    发表于 09-24 19:22

    单片机串口波特率和上位波特率相同还是乱码怎么解决?

    单片机串口设置为115200后,打开串口助手,也设置为115200,发现依旧乱码。将串口助手波特率设置为38400后,发现正常打印。思索一
    发表于 01-19 07:39

    51单片机编程什么时候要用到波特率倍速?波特率倍速有什么用处?

    51单片机串口波特率倍速问题,51单片机编程什么时候要用到波特率倍速,波特率倍速有什么用处啊,不太明白,会不会因为串口
    发表于 10-27 07:34

    CW32单片机在智能马桶的应用介绍

    和调节。本文将介绍CW32单片机在智能马桶的详细应用。 图:CW32的智能马桶控制板 CW32单片机
    发表于 12-20 10:06

    CW32单片机低电压检测器的使用介绍

    CW32单片机低电压检测器的使用介绍
    的头像 发表于 09-18 10:56 624次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>低电压检测器的使用<b class='flag-5'>介绍</b>

    CW32单片机UART基本数据收发功能介绍

    CW32单片机UART基本数据收发功能介绍
    的头像 发表于 10-24 16:50 417次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b><b class='flag-5'>UART</b>基本数据收发功能<b class='flag-5'>介绍</b>

    CW32单片机I2C接口读写EEPROM芯片介绍

    CW32单片机I2C接口读写EEPROM芯片介绍
    的头像 发表于 11-09 17:42 597次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>I2C接口读写EEPROM芯片<b class='flag-5'>介绍</b>

    CW32单片机在智能马桶的应用介绍

    和调节。本文将介绍CW32单片机在智能马桶的详细应用。图:CW32的智能马桶控制板CW32单片机
    的头像 发表于 12-20 10:09 261次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>在智能马桶的应用<b class='flag-5'>介绍</b>