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

STM32F100VDT6 外部HSE 时钟不准问题

[复制链接]
yufeige 提问时间:2018-10-20 15:38 /
主控STM32F100VDT6 外部晶振8M,官方库3.5.0
几个月前购买过几十片该型号MCU,程序运行起来 系统时钟 24M ,完全正常
前些时候又购买几十片该型号MCU,程序运行起来,发现串口通讯速率完全不对,115200的波特率 被降到57600去了,因此怀疑是主频不对。

demo程序是直接基于ST 3.5.0库中的demo 程序上去修改的 ,仅仅配置systemInit这个函数,然后看打印输出
分析处理过程:
1、在systemInit这个函数中配置成内部HSI 8M晶体跑,发现系统时钟是24 可以正常跑,设置115200的波特率打印正常
2、在systemInit函数中,SYSTEM CLOCK 改为HSE,且把PREDIV1 =1  即 /*  PLL configuration:  = (HSE ) * 6 = 24 MHz */ 相当于是8M*6 = 48M,这样修改过后发现程序居然也是正常的。
3、实际测试外部晶体的频率也是8M。

因此对于这样的问题 ,我不确定是不是购买到了假冒的MCU。
此外对于这个问题的另外一些想法是,有没有办法可以做到 程序内部时钟自检,判断是否达到设计所要的时钟频率。
STM32 1.png
收藏 评论5 发布时间:2018-10-20 15:38

举报

5个回答
yufeige 回答时间:2018-10-20 15:39:42
目前这一批次的所有都是这一的问题,只要以替换先前的MCU就完全是好的
五哥1 回答时间:2018-10-22 13:20:02
原板子上替换的吗?这个芯片是一家提供的吗?芯片型号是否一致?

评分

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

查看全部评分

butterflyspring 回答时间:2018-10-22 15:05:38
你用MCO把晶振输出来看看吧

评分

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

查看全部评分

废鱼 回答时间:2018-10-22 15:18:09
我认为是时钟配置的问题。楼主要注意一下配置。比如默认HSE的配置HSE_VALUE是4M还是8M。这些在stm32f1xx.h里面有定义。具体可以根据寄存器的值进行推断。按楼主说的这种情况,我猜测是外部始终和实际的HSE_VALUE定义不一致导致的。

评分

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

查看全部评分

yufeige 回答时间:2018-10-25 12:02:56
五哥1 发表于 2018-10-22 13:20
原板子上替换的吗?这个芯片是一家提供的吗?芯片型号是否一致?

就是原板子替换芯片,先前购买的芯片是完好的,这次购买的贴上去就有这个问题, 我是在网上找同一家购买的 丝印也是一样
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版