当前位置: 首页 > news >正文

【STM32修改串口波特率】

STM32微控制器中的串口波特率调整通常涉及到USART(通用同步接收器/发送器)模块的配置。USART模块提供了多个寄存器来设置波特率,其中关键的寄存器包括BRR(波特率寄存器)和USART_CR1(控制寄存器1)。

以下是基本步骤:

理解公式:
波特率(baud rate)= (SMBA (时钟频率 / 16) + 1) / (USART_BaudRate Prescaler * 16)。其中,SMBA(System Multiplier Baudrate Arrangement)是USART_BaudRate Prescaler的乘法因子,取决于你的系统时钟速率。

选择合适的预分频器:
USART_BaudRate Prescaler可以设置为8, 16, 32, 64, 128或256。预分频器越小,波特率越高。你需要根据实际的系统时钟频率来计算合适的预分频值。

配置BRR寄存器:
对于STM32F1系列,你可以使用USART_BRR寄存器来设置波特率。这个寄存器是一个无符号16位寄存器,计算公式为:USART_BRR = ((USART_APBCLK / 16) - 1) / baud_rate。

启用波特率发生器:
在USART_CR1寄存器中,设置USART_FLAG_TXE(发送数据就绪标志)和USART_CR1_USBS位(波特率发生器使能)。这会启动波特率发生器,开始计算正确的波特率。

设置波特率模式:
根据你的应用需求,可能还需要在USART_CR1寄存器中设置USART_MODE(波特率模式)位。例如,USART_MODE_8BIT是8位UART模式,USART_MODE_9BIT是9位UART模式。

测试:
设置好配置后,你需要使用实际的数据传输来验证波特率是否正确。

示例代码:
在这里插入图片描述

http://www.lryc.cn/news/391903.html

相关文章:

  • 印章谁在管、谁用了、用在哪?契约锁让您打开手机一看便知
  • [C++初阶]vector的初步理解
  • 【等保2.0是什么意思?等保2.0的基本要求有哪些? 】
  • VMware中的三种虚拟网络模式
  • 深度学习基准模型Transformer
  • 如何实现公网环境远程连接本地局域网宝塔FTP服务远程管理文件
  • dledger原理源码分析系列(一)-架构,核心组件和rpc组件
  • Github 2024-07-05开源项目日报 Top10
  • WHAT - React useEffect 依赖的 Object.is
  • 【Java EE】Spring IOCDI
  • 【FreeRTOS】同步互斥与通信 有缺陷的同步示例
  • Lambda表达式讲解
  • 深入了解Linux中的dnsmasq:配置与优化指南
  • 【React】Ant Design -- Table分页功能实现
  • 400G SR4和800G SR8光模块在AI集群中的应用
  • ARM功耗管理软件之DVFSAVS
  • 【堆 优先队列】23. 合并 K 个升序链表
  • 云桌面运维工程师
  • AGI 之 【Hugging Face】 的【Transformer】的 [ Transformer 架构 ] / [ 编码器 ]的简单整理
  • 【在大模型RAG系统中应用知识图谱】
  • 第二十条:与抽象类相比,优先选择接口
  • 20240705
  • 【2023ICPC网络赛I 】E. Magical Pair
  • Kafka-服务端-网络层-源码流程
  • 百日筑基第十一天-看看SpringBoot
  • Generative Modeling by Estimating Gradients of the Data Distribution
  • vector与list的简单介绍
  • 四种线程池的使用,优缺点分析
  • 什么是 BEM 规范
  • 【Node.JS】入门