STM32串口波特率怎么设置?使用库直接设置吗?像51那样寄存器的设置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32串口波特率怎么设置?使用库直接设置吗?像51那样寄存器的设置?相关的知识,希望对你有一定的参考价值。

如果你仔细研究USART_Init()函数,你会发现,这程序在配置波特率时会读取RCC有关的寄存器来计算当前CPU实际的工作频率是多少,然后计算参数来实现你需要的波特率——就是说不管你把单片机设置为什么样的工作频率,这函数都能让串口以你要求的波特率工作。

当然如果你把原来8M的晶振换掉了,那你就需要修改系统中的一个定义:在文件stm32f10x.h中的定义HSE_Value,这参数定义了单片机使用外部晶振或时钟源的频率,一般就是8000000,即使用的8MHz晶振。如果你的STM32用了什么7.3728、11.0592或者25MHz晶振时,你就要修改HSE_Value定义的值,这样保证串口通信波特率正确。
参考技术A 库里面有专门的函数可以设置波特率等参数,在stm32f10x_uart.c中有函数,或者你也可以参考芯片手册中的寄存器来进行设置,不过还是用库函数方便点~追问

使用库的时候,比如我想设置9600,就直接在串口初始化的时候写9600 不用管他的外部晶振吗?能看懂我说的意思吗? 比如要设置9600波特率,那么我外部晶振选择8MHZ 或者25MHZ的时候也一样直接使用库,在初始化的时候初始9600 感觉理不通!

以上是关于STM32串口波特率怎么设置?使用库直接设置吗?像51那样寄存器的设置?的主要内容,如果未能解决你的问题,请参考以下文章

stm32串口字长默认都是8,9位的,怎么改成11bit的?并且设定特定波特率比如100000

STM32F4 HAL库开发 -- 串口

STM32F4 HAL库开发 -- 串口

STM32F4 HAL库开发 -- 串口

stm32串口

stm32f7的串口TX如何设置