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

【经验分享】STM32不同型号单片机keil工程移植说明

[复制链接]
STMCU小助手 发布时间:2022-3-22 13:00
        STM32系列单片机如果库函数开发的话,那么不同型号单片机的工程是可以直接移植的。这样的话如果项目中更换了芯片,工程就可以直接移植过去,不用重新编写。这样就节约了很多时间。
0 W; b, E- G1 u/ |+ Z! Q( z7 k* K% c
        下面说一下如何将 在STM32F103RCT6单片机上开发的工程,移植到STM32F103C8T6单片机上。移植工程之前,首先要确保工程中用到的IO口,在两个芯片中都有。否则如果工程中使用IO在一个芯片上有,另一个芯片上没有,那么是不能直接移植的,需要更改 IO口后才能使用。( l4 j  K5 Y& N. r+ B; o: X

/ n, W8 I/ ?5 t3 @1 H9 ^7 ?$ u/ r( K相关IO口可以在官方芯片资料中查看- B; t8 a3 ]1 ]$ ?" d( L# X

# K. d, z9 N* q7 z CE{QB_M3NG2D~WVTQ($BKXU.png
5 t# O6 a: ?7 n  g8 b5 u8 ~& T" ]+ c7 r+ p7 n
如上图所示 PC0口,在48个引脚的单片机中是没有的,在其他单片机中的引脚位置也不一样。移植的时候引脚位置要确认好,看看位置不同是否影响使用。虽然在不同封装上引脚编号不一样,但是引脚的功能都是一样的。在程序中的设置方法也是一样的。
1 R# c0 z1 M0 s  |* R
8 d; v. M1 t6 Z5 V# d! K下面用一个工程来说明,用STM32F103RCT6单片机编写的读取内部温度传感器工程,移植到STM32F103C8T6单片机上。由于温度传感器是内部自带的功能,和外部IO口无关,所以程序不用做任何修改。只需要在keil中修改配置就行了。$ _8 X% p0 |) o* Z
2 B: N  p* u1 I. k$ r% A
LY)P}L0A@7P}BL66ABQYXOE.png 5 x* w1 z" c! ~2 P5 H# N. q* z9 T
* M- _5 H9 V9 _& r
首先将Device中芯片型号由STM32F103RC 改为 STM32F103C8. @$ J  K! A- h+ ?
( I: Z" D4 W- o, [- ?1 G% o
{1XB0H27	~Q1``GPWC{39.png - @4 c0 z( U8 x# w3 _, ^

1 _. g0 z8 ]; i) R! F% ]( n! M1 X下面更改宏定义设置
6 a/ D' g( d3 j2 U, Z  _6 l
8 R' z. b3 Q  H `ONL47DVX9900N6QD1K$D9A.png
" u& l, a2 z5 H0 k, T2 T0 Q
4 g5 V+ U. C. @* Z7 z/ d在C/C++中将宏定义STM32F10X_HD 改为 STM32F10X_MD,因为STM32F103RC为大容量芯片,而 STM32F103C8为中等容量芯片,所以要将HD改为MD。, A! f5 x% t- Z# ^/ O  z7 ~

2 H. a% _( w# {- X7 t }GDL8JF9GWN9OXYR2EI9_LL.png
' Y( S5 z- v! r2 W8 o* ?- }5 f& x
  S4 M. t, p5 _最后设置Debug选项
* p3 u1 x  x, I8 L  R4 c/ }  ^0 h+ ?
! A. c1 d* \5 h U6L$NG}Q~A49Q_]PJJHSG]3.png ' w' n8 Y, Q3 I1 b

. @. _; L4 I& U5 e在Debug中选择烧写器为J-LINK,然后点后面的Settings按钮。! a8 X5 Q$ Z* [

4 i! k0 A# b5 O4 e ES5H9XW[X6_V9BZGCZ~WO.png 5 y2 {2 _. b# K) H

2 H* E4 e7 Y, ^# J4 ^( r, \打开的界面中选择Flash DownLoad选项,底下默认是STM32F103RC单片机的flash文件,为512k,而当前用的STM32F103C8单片机flash为128K,所以要将原来的文件删除掉,重新添加文件。
- j/ s7 S. @2 |  r: z8 @) ?2 J. j
' w' S6 S0 R7 A0 |2 b5 Z% l选中默认文件,点底下Remove按钮,删除原文件。
/ n) B7 t, c; w, @' F4 W' f+ F7 S1 N9 S2 Y
8)RIM7GU6)DOQCKF_QG(H6F.png
9 C4 ?6 f9 b( t- L% p! W( X2 e5 N+ @3 y
删除掉原文件后,再点Add按钮添加新文件。
3 E0 P0 `' _: J8 C: N. {) N  ^' ~* {4 d9 S8 j2 Z
1O()OC[8N1CYI1Q6SQ93ZSX.png 8 E  j0 ~; O2 j9 `' {: r5 f0 p

2 N& [, n' n! ]0 ]4 P! o2 V, G在打开的对话框中选择第一个文件 128K大小
1 ]' w4 ?4 J2 h9 K0 G3 e! E/ Z5 P0 H2 O) P2 i6 r: b
[M5PUDU717U[F09{)CJF2A1.png * ]3 a! q* V  @  \
/ C( z! x! k: h7 h9 F7 a+ v
点Add按钮,添加新文件。
/ a, h8 Q5 ]+ `! {3 A. \1 X  B% X9 [: k0 Z  }2 d( g
89FXS3K(5AX@_9B7AN3`~7H.png ; @4 G! i& T3 v
! C( L9 S  V$ q2 C' d  J0 T1 `
这时flash文件大小就变成128k了,最后点确定按钮。4 j$ e# M2 u7 b7 q
1 R$ r1 D% [" Z' x4 q
~Z5SHLK_X{Q@2A7@~PB$KTT.png 8 r% D# ?# q0 ]8 H+ E7 L
% }# D( W5 L. B' w* `
这时回到设置界面,在点OK按钮。这样设置工作就完成了,重新编译工程就可以直接使用了。% D% _6 w4 A/ c0 T% T

8 _3 [3 |6 A! D: l }M}7S00S$Q9)ZL~K[KBCHIS.png ' E: W; s4 a* G" A* I6 k" g/ `) r
7 l0 G) d& z' v$ J% [" i; F& ~" [( \
工程编译成功,下载到单片机中看看运行结果。
( v% w" q5 R5 P1 ~7 g4 Q+ l3 [( x& s9 D  @/ l1 F
Q%Y5SY5~38R9OYSU25%JQ~Y.png 3 {$ I8 R' ?4 Q9 U, a: z5 Z* k# M5 o
! o2 r4 `- K9 `- r0 n# _
温度读取成功,说明工程移植也成功了。( X+ j0 ?  r& u4 u9 G, z
4 O, P; ^* r+ r4 X- w) P) c+ i
& P5 w  z1 y9 [" ^+ n4 h! w: A
收藏 评论0 发布时间:2022-3-22 13:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版