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

 我来答
ATF144X
推荐于2017-11-25 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4676万
展开全部
如果你仔细研究USART_Init()函数,你会发现,这程序在配置波特率时会读取RCC有关的寄存器来计算当前CPU实际的工作频率是多少,然后计算参数来实现你需要的波特率——就是说不管你把单片机设置为什么样的工作频率,这函数都能让串口以你要求的波特率工作。

当然如果你把原来8M的晶振换掉了,那你就需要修改系统中的一个定义:在文件stm32f10x.h中的定义HSE_Value,这参数定义了单片机使用外部晶振或时钟源的频率,一般就是8000000,即使用的8MHz晶振。如果你的STM32用了什么7.3728、11.0592或者25MHz晶振时,你就要修改HSE_Value定义的值,这样保证串口通信波特率正确。
我影魔是菜
2012-04-06 · TA获得超过100个赞
知道答主
回答量:59
采纳率:100%
帮助的人:59.8万
展开全部
库里面有专门的函数可以设置波特率等参数,在stm32f10x_uart.c中有函数,或者你也可以参考芯片手册中的寄存器来进行设置,不过还是用库函数方便点~
追问
使用库的时候,比如我想设置9600,就直接在串口初始化的时候写9600   不用管他的外部晶振吗?能看懂我说的意思吗?   比如要设置9600波特率,那么我外部晶振选择8MHZ 或者25MHZ的时候也一样直接使用库,在初始化的时候初始9600   感觉理不通!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式