打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【精品博文】STM32F767 Nucleo-USART移花接木OK
赢一个双肩背包
有多难?
戳一下试试看!
→_→
长摁识别今天继续查找问题原因,使用十六进制查看串口收到的数据,根本不是ASCII码,根据之前的思路,开始查找时钟配置:首先发现一个以前没有注意的问题,Nucleo-144 的晶振X3没有焊接,使用的是ST-Link的MCO输出的时钟(8MHz),所以  HSE需要设置为BYPASS模式;  修改之后发现还是不对,然后进行单步调试系统时钟竟然是这样子的:
很明显不对!最大216MHz怎么就变这么大!!
继续单步跟踪发现:
居然是这里出错了,这个pllvco是根据HSE_VALUE这个宏计算出来的:
1
2
3
4
5
if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI)
{
/* HSE used as PLL clock source */
pllvco = ((HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >>         POSITION_VAL(RCC_PLLCFGR_PLLN)));
}
跟踪HSE_VALUE,找到罪魁祸首:
1
2
3
4
5
6
7
8
9
/* ########################## HSE/HSI Values adaptation ##################### */
/**
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
*        This value is used by the RCC HAL module to compute the system frequency
*        (when HSE is used as system clock source, directly or through the PLL).
*/
#if !defined  (HSE_VALUE)
#define HSE_VALUE    ((uint32_t)25000000U) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
于是乎,有点不解,在MDK中设置的晶振频率不起作用么?
一不做二不休,直接修改宏:
1
2
3
4
5
6
7
8
9
/* ########################## HSE/HSI Values adaptation ##################### */
/**
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
*        This value is used by the RCC HAL module to compute the system frequency
*        (when HSE is used as system clock source, directly or through the PLL).
*/
#if !defined  (HSE_VALUE)
#define HSE_VALUE    ((uint32_t)8000000U)
#endif /* HSE_VALUE */
编译、下载:
正确显示!好吧,今天先这样!感谢正点原子提供这么多资料供学习。关于晶振频率在MDK中的设置为什么没有起作用的问题希望有了解的网友指点一下!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
STM32 HAL 库学习笔记之
stm32
ADC1-DMA
如何配置STM32的USB时钟?
stm32串口程序(全)
[原创]NUCLEO-F410RB 测评第一周: 运行尝试
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服