当前位置:首页 > 单片机 > 单片机
[导读]STM32库里面设置usart的波特率是又乘又除, 初始化的代码可以直接用, 但要提高代码的效率,就要直接填分数分频值的立即数进入BRR寄存器, 改变波特率所以写了下面的宏, 希望大家有用/* 波特率的分数分频值宏 *///clk: u

STM32库里面设置usart的波特率是又乘又除, 初始化的代码可以直接用, 但要提高代码的效率,
就要直接填分数分频值的立即数进入BRR寄存器, 改变波特率

所以写了下面的宏, 希望大家有用

/* 波特率的分数分频值宏 */
//clk: usart时钟, bps: 需设置的波特率
#define M_USART_BAUD_RATE(_clk,_bps) /
((u16)(((_clk / _bps) & 0xFFF0) + /
((((((_clk / 1600) - (_clk / _bps / 16) * (_bps / 100)) /
* 160 / (_bps / 100)) + 5) / 10) & 0xF)))

用法:
//时钟是72MHz, 波特率57600, 修改usart1的波特率
USART1->BRR = M_USART_BAUD_RATE(72000000,57600);//值为0x4E2
//时钟是64MHz, 波特率57600, 修改usart1的波特率
USART1->BRR = M_USART_BAUD_RATE(64000000,57600);//值为0x457

特别提醒,使用USART1可以使用系统频率,当这个波特率宏在USART2和USART3使用时,应将系统时钟除于2。

如://时钟是72MHz, 波特率57600, 修改usart2的波特率
USART2->BRR = M_USART_BAUD_RATE(36000000,57600);


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

以下内容中,小编将对波特率的相关内容进行着重介绍和阐述,希望本文能帮您增进对波特率的了解,和小编一起来看看吧。

关键字: 波特率 码元

波特率9600的传输速率为每秒9600个比特,而波特率115200的传输速率为每秒115200个比特,因此,115200的传输速度比9600快得多。

关键字: 波特率 传输速度 MCU

比特率:在数字信道中,比特率是数字信号的传输速率,它用单位时间内传输的二进制代码的有效位(bit)数来表示,其单位为每秒比特数bit/s(bps)。

关键字: 波特率 比特率 信道

在通信领域中,波特率与数据传输速率是两个关键的性能指标。波特率通常用于描述模拟通信系统中的信号调制速率,而数据传输速率则用于描述数字通信系统中的数据传输效率。了解波特率与数据传输速率的关系对于正确选择和配置通信系统至关重...

关键字: 波特率 数据传输速率 模拟通信

串行通信是一种通信方式,其中数据按顺序一位一位地传输。与并行通信不同,串行通信在一条线路上传输数据,因此需要较少的数据线。串行通信主要用于长距离通信,因为它的功耗低、成本低、简单易实现。

关键字: 串行通信 波特率

串口通信是一种常见的通信方式,它通过串行方式传输数据。串口通信的原理相对简单,主要涉及到数据位的传输和接收。在串口通信中,数据按照一定的波特率(baud rate)逐位传输。通常,一个字节的数据由8位组成,所以传输一个字...

关键字: 串口通信 波特率

摘要:多功能电能表在配电系统中应用广泛,其计量的准确度对企业管理和考核至关重要,因此在设计多功能电能表时需要对其进行校准,满足一定应用等级。常规的多功能电能表校准方法是以电能脉冲校准为主,现提出一种基于C#和功率校表法的...

关键字: 多功能电能表 串口 波特率

摘要:蔬菜质量可追溯系统是一种采用C/S和B/S混合模式的农产品质量追溯系统。该系统采用物联网技术对蔬菜种植 及加工过程中的所有生产数据、检疫数据、加工数据、销售数据进行记录,最终为生产过程控制、生产管理、食品溯源服务。...

关键字: 溯源系统 串口通信 波特率 数据位

ch340usb转串口在linux上波特率误差

关键字: ch340 波特率

  CAN波特率的简单计算   假设我们先不考虑BTR0中的SJW位和BTR1中的SAM位。那么,BTR0和BTR1就是2个分频系数寄存器;它们的乘积是一个扩展的分频系数。即:

关键字: can 波特率
关闭
关闭