你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
为何我使用cubemx配置的内部HSI 程序跑不去起来,而使用MSI...
[复制链接]
LJYHN
提问时间:2017-3-31 10:40 /
各位大神
为何我使用cubemx配置的内部HSI 程序跑不去起来,而使用MSI可以跑起来
赞
1
收藏
0
评论
1
分享
发布时间:2017-3-31 10:40
举报
请先
登录
后回复
1个回答
rchjbc
回答时间:2017-3-31 15:11:38
a0a.1 32b0c
这个是CubeMX的一个bug。当配置为HSI作为时钟时,SystemClock_Config()这个函数里没有对RCC_OscInitStruct.MSIState进行赋值,这样就使用了默认值RCC_MSI_OFF。但是在随后调用HAL_RCC_OscConfig()时MSI configuration这段代码中: if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_MSI) )
{
if((__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != RESET) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF))
{
return HAL_ERROR;
}
此时时钟源依然是MSI,因此会进入if语句,并且RCC_FLAG_MSIRDY也是置位的,两个条件与的if语句也满足,因此就return ERROR了。
修改时只需要在SystemClock_Config()函数中加上对RCC_OscInitStruct.MSIState的初始化就可以了,如下:
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_MSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
赞
2
评论
回复
支持
2
反对
0
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
{
if((__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != RESET) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF))
{
return HAL_ERROR;
}
此时时钟源依然是MSI,因此会进入if语句,并且RCC_FLAG_MSIRDY也是置位的,两个条件与的if语句也满足,因此就return ERROR了。
修改时只需要在SystemClock_Config()函数中加上对RCC_OscInitStruct.MSIState的初始化就可以了,如下:
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_MSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.MSIState = RCC_MSI_ON;