你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

使用STM32Cube生成工程,时钟配置同时使用了HSI和HSE

[复制链接]
莉赛特卡拉 提问时间:2019-6-19 11:22 /
本帖最后由 莉赛特卡拉 于 2019-6-19 12:18 编辑

你好,遇到个奇怪的问题
我使用STM32CUBE 建立了一个 ADC读取芯片电压的工程,发现在时钟配置的时候是如下语句
  1. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE;
复制代码
同时使用外部高速和内部高速? 并且编译没有问题。并且我并没有选择内部高速时钟,仅仅使用了外部高速时钟,但是还是被强行初始化了。由图是看到HSI被分配到了ADC上,但是ADC也是被挂载ABP2上的吧
微信截图_20190619111540.png


程序能够正常运行,在采集电压的时候,3.3V读出的寄存器值是1500左右,//2.8 => 1805     2.7 => 1856 反比例函数
但是我在删除使用内部高速时钟,则ADC无法正常运行,但是程序打印时正常的,也就表示系统使用了外部高速时钟,但是ADC挂了,也就是ADC使用了内部高速时钟  不科学额, 就比较迷糊了,为啥STM32CUBE生产的 时钟配置会 同时启动内部和外部的时钟呢,照理说应该只能使用一个吧。难道他在 使用ADC的时候 给切换到 内部高速时钟,然后用完了再切换回来??
谢谢

补充:使用的是STM32L151,时钟树有下列该处
1111111111.png
收藏 评论7 发布时间:2019-6-19 11:22

举报

7个回答
莉赛特卡拉 回答时间:2019-6-19 13:54:07
看了下手册,有如下描述
ADC clock
  1. To avoid unnecessary consumption while not converting, the ADC digital interface has been designed to operate in a completely independent manner, at its maximum speed using an internal 16 MHz clock source (HSI), whatever the CPU operating frequency (which can range from a few sub-kHz up to 32 MHz).
复制代码

这就很无语了,用个ADC居然不得不把内部时钟给开了

评分

参与人数 1ST金币 +5 收起 理由
五哥1 + 5 赞一个!

查看全部评分

wenyangzeng 回答时间:2019-6-19 11:36:20
本帖最后由 wenyangzeng 于 2019-6-19 11:37 编辑

楼主的配置并没有使用HSI,从图中可以看到HSI一开始就未选中,VCO输入是走HSE一路的。ADC出错应该查找ADC配置及运行方面的问题。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

莉赛特卡拉 回答时间:2019-6-19 12:14:48
wenyangzeng 发表于 2019-6-19 11:36
楼主的配置并没有使用HSI,从图中可以看到HSI一开始就未选中,VCO输入是走HSE一路的。ADC出错应该查找ADC配 ...

你好
是的 按照STM32CUBE的确是没有配置的,但是在生成的自动化代码时钟配置函数SystemClock_Config ,却是使能了外部和内部时钟,我刚刚测试过,如果在STM32CUBE 中取消ADC的选项,则HSI就没有被初始化,生产代码变成了
  1.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  2.   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
复制代码
,也就是ADC它还真是只用了HSI的, SMT32还能内部外部混着用??
五哥1 回答时间:2019-6-19 12:47:28
一般的工程应用里会有检测如果外部时钟失效会转入内部时钟的程序,你的ADC的无效怀疑不是时钟的锅,建议在查下硬件。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

wenyangzeng 回答时间:2019-6-19 12:47:52
莉赛特卡拉 发表于 2019-6-19 12:14
你好
是的 按照STM32CUBE的确是没有配置的,但是在生成的自动化代码时钟配置函数SystemClock_Config ,却 ...

ADC使用的时钟HSI14RC好像与HSI RC不一样

无标题.png

五哥1 回答时间:2019-6-19 15:04:11
莉赛特卡拉 发表于 2019-6-19 13:54
看了下手册,有如下描述
ADC clock

很了不起的发现,谢谢分享
byronsong 回答时间:2019-6-19 17:22:04
看来这是芯片的设定,user只能遵循规则咯~

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版