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

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

[复制链接]
STMCU小助手 发布时间:2022-3-22 13:00
        STM32系列单片机如果库函数开发的话,那么不同型号单片机的工程是可以直接移植的。这样的话如果项目中更换了芯片,工程就可以直接移植过去,不用重新编写。这样就节约了很多时间。
6 X  z( F' f% q) C( ^2 a0 y, O5 l" N
        下面说一下如何将 在STM32F103RCT6单片机上开发的工程,移植到STM32F103C8T6单片机上。移植工程之前,首先要确保工程中用到的IO口,在两个芯片中都有。否则如果工程中使用IO在一个芯片上有,另一个芯片上没有,那么是不能直接移植的,需要更改 IO口后才能使用。
1 D+ A/ `" {: P! f- a6 H% g* Q  A' I' P9 E' L) b
相关IO口可以在官方芯片资料中查看2 v% v! u9 Z8 }* s9 w/ [
0 y& G& {% T# }3 Y$ }: |, w
CE{QB_M3NG2D~WVTQ($BKXU.png
& \2 f% J. P0 d5 }" f7 G/ F/ e$ a0 S3 y6 D0 @
如上图所示 PC0口,在48个引脚的单片机中是没有的,在其他单片机中的引脚位置也不一样。移植的时候引脚位置要确认好,看看位置不同是否影响使用。虽然在不同封装上引脚编号不一样,但是引脚的功能都是一样的。在程序中的设置方法也是一样的。
' a9 |5 P" g6 w/ _' \" o' f1 G' G) C
下面用一个工程来说明,用STM32F103RCT6单片机编写的读取内部温度传感器工程,移植到STM32F103C8T6单片机上。由于温度传感器是内部自带的功能,和外部IO口无关,所以程序不用做任何修改。只需要在keil中修改配置就行了。
& q4 i2 t! G& ?' I( ~
' l: ?. d! t+ o( c LY)P}L0A@7P}BL66ABQYXOE.png $ b. U7 ^( j/ }; m$ V5 x+ k
+ U  ~! `3 L+ p6 H+ s, {" R
首先将Device中芯片型号由STM32F103RC 改为 STM32F103C8
5 R' P' v2 m; M1 Q" z; j7 A( f' j, Y" g+ \" }
{1XB0H27	~Q1``GPWC{39.png
, k- Q) K( c, I( r% w/ ~0 J! t# i/ F7 N1 ~2 F( P
下面更改宏定义设置
4 K9 r" n1 O, ~- C! a7 K  i- N" {2 ]! t; G) i/ i
`ONL47DVX9900N6QD1K$D9A.png + [( b, L* n2 Q8 v) J
, w9 i  g. I+ U- W
在C/C++中将宏定义STM32F10X_HD 改为 STM32F10X_MD,因为STM32F103RC为大容量芯片,而 STM32F103C8为中等容量芯片,所以要将HD改为MD。
3 ?; _2 b- r* r0 s3 m6 q: @4 Q% G% r* F: b9 S2 A
}GDL8JF9GWN9OXYR2EI9_LL.png 3 |0 l2 }1 G! E, u  q0 `4 g0 Z
5 N, [/ ^1 a2 Q3 o4 m3 r
最后设置Debug选项. B5 J+ f" w0 T, h$ X8 k" f

- ^6 _. h0 k- r7 v( O. \8 @( { U6L$NG}Q~A49Q_]PJJHSG]3.png / w( |3 n0 A, T8 O
2 P) @1 V% C3 p4 [0 d
在Debug中选择烧写器为J-LINK,然后点后面的Settings按钮。
' R' X; t' J; m6 f3 i9 Z4 `' \4 y' B* r: ^
ES5H9XW[X6_V9BZGCZ~WO.png 5 O9 h9 C8 v9 W. Y1 L, j
; a7 u; y# Q6 G
打开的界面中选择Flash DownLoad选项,底下默认是STM32F103RC单片机的flash文件,为512k,而当前用的STM32F103C8单片机flash为128K,所以要将原来的文件删除掉,重新添加文件。" f& J+ l2 J; y
4 R" r4 Q3 B. ^0 `& T- o
选中默认文件,点底下Remove按钮,删除原文件。
, A/ H5 @$ j% s8 `  }, Y- E  L! w* a! i7 J9 I
8)RIM7GU6)DOQCKF_QG(H6F.png
( U. C* C- L6 A7 o# k0 i
! k1 i5 p* ?) b+ L0 j  Q$ y( _删除掉原文件后,再点Add按钮添加新文件。$ L; O  `& p$ P4 c

' r1 b. O6 [3 t' B 1O()OC[8N1CYI1Q6SQ93ZSX.png 9 J/ J8 ]$ k6 q

) y3 q- M+ y+ b" P# L4 F在打开的对话框中选择第一个文件 128K大小
- z7 S( u0 \7 w# A: @
2 L+ i$ e/ J( x, A  C* Z3 W [M5PUDU717U[F09{)CJF2A1.png
# U' [- a4 ]: d4 Y
2 N: E. G7 f) O7 Z0 j点Add按钮,添加新文件。5 z8 K6 \# i; \- M4 g, z

6 J; D8 U# |! h 89FXS3K(5AX@_9B7AN3`~7H.png 9 e% R+ b# w( @0 o

5 w; J, r/ s+ R7 ]% d5 Q2 \这时flash文件大小就变成128k了,最后点确定按钮。4 x4 ]" |. f5 F0 `! T

: G1 y; [- B( }) e. Y" r( y+ X ~Z5SHLK_X{Q@2A7@~PB$KTT.png & v/ _/ o6 `3 x. o( h; V8 O( k8 @7 t

- m+ D7 U4 Q$ o& f; n" y这时回到设置界面,在点OK按钮。这样设置工作就完成了,重新编译工程就可以直接使用了。) R: `" @0 T, e
+ U. @+ ~* x1 R7 y5 v
}M}7S00S$Q9)ZL~K[KBCHIS.png
- n% I* ~% D  ]: @
' G6 a4 k$ v' P8 n  R- K工程编译成功,下载到单片机中看看运行结果。% @% |' S) L  X7 m3 `1 J- }  t

) ]; S5 s7 ]# [1 U7 c Q%Y5SY5~38R9OYSU25%JQ~Y.png
  T; f0 w* I+ T0 x  _/ J. I- m2 B( q7 V6 g2 }
温度读取成功,说明工程移植也成功了。
  R5 _8 U. z% Q' H7 w3 l5 f( h" w: @+ O7 r
) m# C1 u1 ~0 Y6 _8 f
赞 收藏 评论0 发布时间:2022-3-22 13:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版