打印
[STM32F1]

请问 STM32F103 的晶振由8M改为了12M,串口该怎么配置?

[复制链接]
1983|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xwuzi|  楼主 | 2014-10-8 13:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);
这个我已经改了,

现在串口发数据,用串口助手收到的不对。。

是不是还有其它地方要修改?
沙发
zhaoyu2005| | 2014-10-8 17:36 | 只看该作者
用jlink连上看看时钟对不,如果换晶振后只是更改了倍频,和之前的系统时钟一致,应该能工作的。

使用特权

评论回复
板凳
airwill| | 2014-10-9 06:29 | 只看该作者
UART 通信的波特率是跟时钟频率有关的。所以随便换个晶振,必然影响 UART 的工作。
翻开库函数 USART_Init,通过 RCC_GetClocksFreq 函数获取系统频率的。而此函数又是由 HSE_VALUE 影响频率值的。这就是晶振频率。这个宏在 stm32f10x.h 里做了定义,你可以直接到这个头文件里改掉它。
由于使用了
#if !defined  HSE_VALUE
#define HSE_VALUE xxxx
的方式,由于Keil MDK 编译器的预定义符号里被不能给 HSE_VALUE 定义 12000000 这样的常数,你也可以自己建立一个头文件来定义 HSE_VALUE  12000000, #include 先于 stm32f10x.h (说起来有点复杂,但可以不去改 stm32f10x.h)。

使用特权

评论回复
地板
mmuuss586| | 2014-10-9 12:22 | 只看该作者
这个地方改下看看:

使用特权

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

本版积分规则

个人签名:人生无非是笑笑人家,再被人家笑笑~

43

主题

493

帖子

6

粉丝