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%。

来源:武汉芯源半导体

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

审核编辑 黄宇

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

    关注

    6032

    文章

    44513

    浏览量

    632691
  • uart
    +关注

    关注

    22

    文章

    1227

    浏览量

    101161
  • 波特率
    +关注

    关注

    2

    文章

    294

    浏览量

    34060
收藏 人收藏

    评论

    相关推荐

    STM32单片机的串口波特率计算方法

    不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率波特率就是每秒传送的字节数。双方在传输数据的过程中,波特率
    的头像 发表于 01-05 09:59 2.8w次阅读
    STM32<b class='flag-5'>单片机</b>的串口<b class='flag-5'>波特率</b>计算方法

    什么是串口波特率?串口波特率的分类及应用详解

    什么是串口波特率串口波特率是指串口通信系统中传输数据的速率。在UART串口通信中,数据以位(bit)的形式传输,波特率是指每秒钟传输的位数。在串口通信中,
    的头像 发表于 08-08 10:09 5751次阅读
    什么是串口<b class='flag-5'>波特率</b>?串口<b class='flag-5'>波特率</b>的分类及应用详解

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

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

    51单片机的常用波特率初值表资料免费下载

    本文档的主要内容详细介绍的是51单片机的常用波特率初值表资料免费下载。
    发表于 08-29 17:29 5次下载
    51<b class='flag-5'>单片机</b>的常用<b class='flag-5'>波特率</b>初值表资料免费下载

    51单片机的常用波特率初值表资料分析

    用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz
    发表于 08-08 17:33 0次下载
    51<b class='flag-5'>单片机</b>的常用<b class='flag-5'>波特率</b>初值表资料分析

    如何将51单片机的9600波特率改成115200波特率

    前几天写一个程序,碰到一个问题,51单片机常用到的波特率是9600的,但是使用到的模块的波特率是115200的,程序写好了但是功能不能正常实现,所以想到了修改波特率,但是在网上查了好多
    发表于 06-13 17:45 17次下载
    如何将51<b class='flag-5'>单片机</b>的9600<b class='flag-5'>波特率</b>改成115200<b class='flag-5'>波特率</b>

    单片机51波特率计算工具应用程序免费下载

    本文档的主要内容详细介绍的设计单片机51波特率计算工具应用程序免费下载。
    发表于 04-24 16:41 5次下载
    <b class='flag-5'>单片机</b>51<b class='flag-5'>波特率</b>计算工具应用程序免费下载

    如何计算8051单片机波特率

    8051单片机使用定时器1工作在方式2的情况下作为串口波特率发生器,其波特率=(2smod/32)×(定时器T1溢出),其中smod是PCON《7》,表示是否
    发表于 11-18 16:39 3810次阅读

    【Practical】51单片机串行口与波特率

    51单片机串行口与波特率
    发表于 11-23 09:21 10次下载
    【Practical】51<b class='flag-5'>单片机</b>串行口与<b class='flag-5'>波特率</b>

    什么是波特率?为什么要设置波特率

    9600个比特的数据。二、串口通信为什么要设置波特率下面我们就以东用科技的OM302系列工业DTU为例,来给大家简单描述一下串口通信为什么要设置波特率。DTU是指数
    的头像 发表于 04-08 00:00 6650次阅读
    什么是<b class='flag-5'>波特率</b>?为什么要<b class='flag-5'>设置</b><b class='flag-5'>波特率</b>?

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

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

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

    CW32单片机UART基本数据收发功能介绍
    的头像 发表于 10-24 16:50 718次阅读
    <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 1011次阅读
    <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 576次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>在智能马桶的应用<b class='flag-5'>介绍</b>

    uart波特率和传输频率的关系 UART串口的常用波特率为多少

    频率是两个关键参数,它们之间存在一定的关系,并且UART串口有一系列常用的波特率。以下是对这两个概念的介绍。 一、UART波特率和传输频率的
    的头像 发表于 10-06 16:12 1684次阅读
    <b class='flag-5'>uart</b><b class='flag-5'>波特率</b>和传输频率的关系 <b class='flag-5'>UART</b>串口的常用<b class='flag-5'>波特率</b>为多少