打印

USART1 串口波特率的问题. 请香水城看一下.

[复制链接]
16867|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jgphu|  楼主 | 2011-12-2 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的芯片用外部16M晶振.

调试发现USART1的发送波特率不是设置值. 而TIM1,TIM2, CAN通信的波特率都是对的.

我查询USART1的BRR寄存器的值,

FPCLK = 72M, 波特率为19200.  但固件库软件计算值为117(原来计算值为234).

这样的话波特率肯定会不对的,

我用的是3.5.0的固件库.  我觉得是这样的, 固件库在初始化的时候会去获取FPCLK的值.但设置的是72M,为什么它得到的值为36M呢, 所以会出现实际示波器测量的时候,波特率已经加倍了,
来自 2楼
jgphu|  楼主 | 2011-12-7 13:53 | 只看该作者
找到问题的根源了,  原来固件库在计算波特率的时候会调用一个获到外设时钟的一个函数, 在这个获到外设时钟的函数里也是通过计算得到外设时钟值的..

原固件库 定义 #define HSE_VALUE    ((uint32_t)8000000), 如果你的外部晶振是8M或你用内部晶振时, 你的波特率用库里的函数计算就是正确的.

我用的外部晶振是16M的, 而 HSE_VALUE 又没有改, 波特率算出来也就减半了,

所以改 #define HSE_VALUE    ((uint32_t)16000000), 波特率就对了..

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
Chaos_zc + 1
板凳
香水城| | 2011-12-2 10:48 | 只看该作者
对不起,我没有研究过。

STM32技术手册的第27.3.4节有详细的计算方法和例子,还有一个列表,你可以看看。

使用特权

评论回复
地板
jgphu|  楼主 | 2011-12-2 12:30 | 只看该作者
技术手册没问题, 我就是想问这个固件库针对这个串口波特率设定的算法是不是有问题. 还是别的.

我根据技术手册直接写寄存器肯定不会有问题啦.

使用特权

评论回复
5
haitao10086| | 2011-12-8 08:47 | 只看该作者
:dizzy:

使用特权

评论回复
6
swfc_qinmm| | 2011-12-8 12:34 | 只看该作者
LZ研究的很仔细。

使用特权

评论回复
7
581200| | 2011-12-13 14:58 | 只看该作者
很好很精辟

使用特权

评论回复
8
alnjby| | 2011-12-16 15:36 | 只看该作者
研究的很仔细,很好很精辟




耳鼻喉医院
武警南京医院

使用特权

评论回复
9
panyichen| | 2011-12-18 09:44 | 只看该作者
不是很清楚

使用特权

评论回复
10
lpersist| | 2011-12-19 15:54 | 只看该作者
nice,以前也碰到过,也花了不少时间。。。

使用特权

评论回复
11
baidudz| | 2011-12-19 18:30 | 只看该作者
楼主解决问题的能力挺强的,我一般得花几天才能找到问题所在

使用特权

评论回复
12
秋天落叶| | 2011-12-19 18:35 | 只看该作者
研究一下STM32技术手册

使用特权

评论回复
13
sczhangyl| | 2011-12-29 10:07 | 只看该作者
这种问题一般手册上都有!仔细看手册!

使用特权

评论回复
14
zhuyjgh| | 2012-1-4 14:23 | 只看该作者
不用库,,没碰到过,,

使用特权

评论回复
15
程序匠人| | 2012-1-4 22:39 | 只看该作者
和所猜不差

使用特权

评论回复
16
wfbisheng| | 2012-1-5 12:27 | 只看该作者
这问题没遇到过

使用特权

评论回复
17
lwslws201| | 2012-1-5 20:30 | 只看该作者
14# zhuyjgh
不愧是匠人~~

使用特权

评论回复
18
lwslws201| | 2012-1-5 20:31 | 只看该作者
15# 程序匠人
不愧是匠人~~

使用特权

评论回复
19
lhx522729| | 2012-1-10 11:00 | 只看该作者
没研究过STM32

使用特权

评论回复
20
chhaich| | 2012-1-11 01:01 | 只看该作者
牛人呀,呵呵。。。
还没有深入去了解这个库。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

642

帖子

2

粉丝