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

【实战经验】STM32F103C8T6 程序上电跑飞

[复制链接]
zero99 发布时间:2016-6-28 14:27
STM32F103C8T6 程序上电跑飞

2 t$ E# l' |$ J2 E7 a$ U前言
5 q4 u6 B4 }! k; v7 s某客户反应说他们做回来的板子测试发现程序上电就跑飞了,下载都正常。检查了一个礼拜都不知道哪里出了问题,感觉无从下手。8 y3 E' n: A4 }  H" K; D4 z! z" H

' f+ n; H( k7 r$ j. m: a* @2 Q9 |一 问题排查" q" [9 }" }* ?. W/ c2 e
1.1 检查电路板9 M( @# D2 {3 R3 I! ?
排除虚焊漏焊现象,查看晶体起震波形正常,查看BOOT引脚配置正常。" Q, L! e: O" T4 i5 a8 Y/ b5 W2 L
1.2 检查软件代码
. R1 D. c; O( h! A6 }2 a客户使用了老的标准库,反应说代码在别的板子上验证过,运行正常。
' Z! o9 Q. k* K1.3 IDE检查6 t! C9 D* ~! D5 \! d
客户使用KEIL MDK V5.X版本,下载代码正常,连接ST-LINK/v2 仿真DEBUG, 程序跑飞。) J5 ]0 P# Y9 p1 i0 r; S
停在了一段空白的地址空间中。: O" R, g6 M1 F+ w# y" W0 t' X

& V/ \& B8 x% p* a) i二 测试流程
! |+ z3 c6 v# @" ]2.1 编写测试代码! w, ]" r$ t9 d, v
在老版本的标准库的基础上,做了一个LED闪烁的DEMO程序,方便直观的观察现象。
$ c$ A9 R, a& X/ e4 ?测试后,问题同样,代码跑飞。# z/ ^9 k. q9 i* i3 O, V
2.2 重新梳理工程5 g. d3 R( P$ E! \- y$ \- V  P% j
在STM32Cube架构上重新新建工程,确认发现客户使用的晶体频率已经超过了16MHz的上限
. |4 Z+ H% ?& o  W* s/ @马上更换一个合适的晶体后并修改时钟驱动代码后,程序运行正常。LED开始稳定闪烁。5 Q' U4 L0 y! a5 ?
30.jpg
2 ^1 z) }3 V/ K  i: y
$ ]/ g  P; k" [' o- ^三 小结
1 l, g% ~/ C; s虽然很多工程师已经很熟悉老的标准库的使用,但还是应该推荐客户选择使用STM32Cube来进行开发,这样这个问题在一开始就会避免。& L. F. }- N; M0 S( p; v
2 V$ [( ?. m5 x* ^( H5 P
& p8 X3 v# n: @1 W3 o, h3 x0 _
文档下载地址:
; Y6 q9 J5 j/ p% @+ {+ s; Ihttps://www.stmcu.org.cn/document/list/index/category-1015
, R0 E7 M5 H" e4 y5 d. f( S- |4 \' k/ H: I0 k& E% ?$ c
实战经验汇总:
- s' h) r& b: V! Whttps://www.stmcu.org.cn/module/forum/thread-576401-1-1.html
收藏 1 评论0 发布时间:2016-6-28 14:27

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版