永发信息网

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

答案:3  悬赏:10  手机版
解决时间 2021-04-05 06:56
  • 提问者网友:書生途
  • 2021-04-05 03:47
STM32串口波特率怎么设置?使用库直接设置吗?像51那样寄存器的设置?
最佳答案
  • 五星知识达人网友:毛毛
  • 2021-04-05 05:12
如果你仔细研究USART_Init()函数,你会发现,这程序在配置波特率时会读取RCC有关的寄存器来计算当前CPU实际的工作频率是多少,然后计算参数来实现你需要的波特率——就是说不管你把单片机设置为什么样的工作频率,这函数都能让串口以你要求的波特率工作。

当然如果你把原来8M的晶振换掉了,那你就需要修改系统中的一个定义:在文件stm32f10x.h中的定义HSE_Value,这参数定义了单片机使用外部晶振或时钟源的频率,一般就是8000000,即使用的8MHz晶振。如果你的STM32用了什么7.3728、11.0592或者25MHz晶振时,你就要修改HSE_Value定义的值,这样保证串口通信波特率正确。
全部回答
  • 1楼网友:千杯敬自由
  • 2021-04-05 06:03
  • 2楼网友:不如潦草
  • 2021-04-05 05:30
库里面有专门的函数可以设置波特率等参数,在stm32f10x_uart.c中有函数,或者你也可以参考芯片手册中的寄存器来进行设置,不过还是用库函数方便点~追问使用库的时候,比如我想设置9600,就直接在串口初始化的时候写9600 不用管他的外部晶振吗?能看懂我说的意思吗? 比如要设置9600波特率,那么我外部晶振选择8MHZ 或者25MHZ的时候也一样直接使用库,在初始化的时候初始9600 感觉理不通!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯