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

【经验分享】学习使用HAL库进行STM32软件开发 | 建立cubeMX工程和keil-MDK工程

[复制链接]
STMCU小助手 发布时间:2022-5-10 21:42
摘要$ v' n6 m( R  L4 E8 f1 n
使用STM32cubeMX建立工程,自动生成代码及keil工程,并切换到keil软件中进行编译,编译通过。5 T; j" \6 D$ K/ x2 P7 U1 F2 f. d6 O
本次只是为了建立基本的工程,到编译通过就结束了,没有进行调试。
/ O6 M7 k1 u! C在编译通过后,发现双击工程名打不开map,查阅资料发现由cubeMX自动生成的工程中,Listing中设置与Output设置生成文件的路径不一致,修改一致后问题解决,可以双击工程名打开map。; }+ X* Q! n0 y# h

2 Y( R# |" Q/ {6 p3 E一、在cubeMX建立工程. y# F' F* G0 L/ M0 f  s" G
打开cubeMX。
" ]7 r% N5 k/ ]' F1 l `DUHI$RO60HMDF@{JFP.png
  M! D. f, |& X) `$ ^, K) m/ |8 M# F
T__9G);{YI6BAB}WX5.png . ?4 {  @( x) v

! m2 p/ M1 n3 C  m8 K点击file > new project。
. m; Y8 z2 G+ M# B- S' d9 g
4 r1 }0 q6 f7 Y 4ROBE~0{)AR%R3EJ2PAITQ3.png
1 z9 I4 y: R8 G. j) T; n- C1 v; H1 q  I- w/ p" I. F
在芯片列表中找到STM32F429IGT6。
! p: i9 ?: \. Z+ A" S4 t/ S% c, P. G7 c) \1 B3 _% q
0C@9U0C3`4T4TQ]HJ]SYN{9.png
5 U8 S, {8 ^# \( I  R% s* y- P. R8 l) n
点击建立STM32F429IGT6工程。
" E% a: N" m3 j% r  u( o; M7 R9 S. W7 N) W/ F  {/ }
T}K$~0WAXO]FP0CC${8)0(X.png - y8 l  t( |+ R+ v- a: p' P9 S
: x9 {) ?: r4 c$ _3 V2 w, k8 P2 I& H9 r
VZDL5JPIOX~RCDS](G_Y]2E.png
3 D9 K* ]- ^2 u9 |) t* c
  `. h, L- c) n3 Z% u9 wPinout & Configuration这里不动。
9 W- z: X+ W' [
) j" V' U1 q% g/ u/ t+ X8 e8 I 2]JFQ~6$FYGV_QA_9WDW(Z2.png 4 ~- d- `+ Q1 b

6 y' u% ~0 f8 A+ k, x# j3 y7 TClock configuration不动。( n# x( p, R& F# P8 y& W
+ @0 y6 q+ L6 S* b( X
500AWZVN_VP7J)E4)5[U]3D.png 5 t9 v9 {0 k  ^. C/ t3 g  i

2 @: W4 k: J# O4 K3 q, V$ dProject Manager这里,Project设置好工程路径、工程名称、开发环境。) {0 v( |: E9 I8 d6 ?

; l2 r# a7 o. t" u DH8KD~AP6$[[H2J]{{_WPP7.png
, W# t5 o2 ~  @. L
% _9 E, T& h! L+ t5 R. E$ tCode Generator这里,比默认多勾选一个生成单独的.c和.h文件,不然一堆代码全在main里面不好找。
) h5 y  i7 V, a' Q+ ~' s: Z7 C3 D+ A* v4 `! y0 d( i
ISMYJM]_WFCLB9LI4H3~RAI.png
' w( q5 s$ @/ _+ `4 N0 @
' n8 i$ D  ^: c* @' `( RAdvanced Settings这里只用了RCC,库选择HAL。
' C1 r. @5 r1 J2 o" C- X. ~5 t/ d0 E* q* Y4 l3 e  ^3 j5 E* t
8~C2B(3{(W[A5K{D0RZ1OOC.png
. Q6 `: @* P& H2 a1 K7 X- E; t
0 V7 f- L' H  g6 t保存工程。
5 L* b: K; a& i/ j4 i* o3 c- k% t; L# E9 z- z% j7 b
1TF(}4XJMZ6%}J{[]20I7QC.png ' M: {" j& i9 E+ f9 V4 k
  D: ?8 A" m- w7 c. R3 f
点Generate code生成代码。* `6 @5 K$ H$ d, [
/ ]. I7 X! }) x$ `8 u% v2 L0 Y
(KQXW@}%R00A`}II4TZD.png 3 M' l4 E( f9 W$ {1 D( u) ~
1 N6 Q: e$ s. ~& l9 R9 ]4 o
YIN81QQZT8{R540V0MW[4$Y.png ; I8 C6 ?* L* V( K3 N( c5 e$ N1 f4 s
- u7 ?; Q" e$ O* Y+ g: W4 I6 `
生成代码之后,可以直接点Open Project打开工程。
5 [, x0 M! l; I( q" h- _+ }+ c; V( O+ g& z! B$ t* b" j
K69L7S0EHE6FYBEI(G6A3]X.png
' ~4 ^, S) }/ G3 s- u' }5 j
9 ^: I% |, @( d8 g GGG`4W({0ICAZ2GJSGNVNVO.png
) v5 w7 f. s3 Z( V% {3 g' d7 p
, C( _/ n+ k4 \4 l0 t查看生成代码的文件夹。
( z/ A) W, |, Q; x+ Q3 X2 i其中,Core是生成的初始化代码,Drivers是ST的库,MDK-ARM存放keil-MDK工程相关文件。
% w: {) a9 D2 y3 M7 Y. s+ v; z+ a: B1 R' V" m% R7 r
MBKFKBU8LJ5F(S_ME`EJ$M3.png
; R% j+ q: [$ R- Y" @% U+ p3 Y7 y8 ?7 ?6 L, N, F3 M5 v+ p( F9 [
二、在keil编译工程( A) G% d" @; j3 }
之前cubeMX生成的代码,可以直接从cubeMX点击打开,也可以从MDK-ARM文件夹中点击工程文件打开keil工程。/ N: u9 ?- J2 I9 }2 m% w

' W& ?& m: A. { MC~{FMT4M``1(M7XW]G8AEN.png
% Z6 j; E0 u7 U9 i  B
" E3 |( X; Q, U% U2 E% i9 X' G工程的设置是直接被设置好的。
/ B0 a2 Z* D( a+ h) p0 C2 ~( G- q- t3 W. B
2845ZGGC7}G{}V%H}DKJX39.png
" |, q+ f  m. R- {7 T- Q$ R
- V9 o' j9 k: l1 l7 t 27EYQY`OO9JG{LDVKF}]{`4.png
( I& c- W+ S% O) w1 m& ]: K5 R( ]" @% v8 A
直接点编译进行编译。2 C3 D1 n/ Y1 N
& x( |- z* S$ G! ?8 {& V6 u: [' l
PVG6}%VG}1V02[NILBC](4Y.png
, d; _8 k6 f, Z) l  Z! `0 n  @/ r. x2 I" m2 b/ J8 l; s( @
编译通过。4 m5 N* X/ Z6 v* ?# I/ N" p
1 Y1 c1 p+ d3 ~/ H" [5 f
8~~{KV%T%K5K(QE2K3J`KRI.png 1 M2 U' D' Y# B
/ E7 Q2 }/ {5 E8 r# B
三、遇到双击工程打不开map的问题: I" f; t! @9 W- ^- Q
编译通过后,双击工程名打不开map文件,网上查阅别人的文章后发现,由cubeMX自动生成的工程中,output中设置生成输出文件的路径为工程文件目录的下一级文件夹,而listing中设置的路径是工程文件的目录,两者不是同一个目录,所以直接双击打不开,在listing中设置修改目录为与output中输出文件的目录一致就解决了。
, I" }$ q+ R# {: t9 T1 E2 P" H. x! H3 Y1 m( R6 c- p' i4 O
output中是工程目录下的test文件夹(我前面建工程时叫的test)- ?8 Q# V' [; H; j6 M: {

: L  A7 c5 j! n' J1 j& I KLNGEB$CERHEF2BK[~L6YE9.png + a/ U8 c/ H; }& I) m* n
7 [8 H; ~- `) W" N' ^- i/ b$ {
listing中的路径直接是工程目录。
( w; v7 r9 L" @/ M
: I8 G" h$ j# \ WLMFSX2E2~MN4C(_ZZH52WR.png
( Z7 m8 I" Y9 I" ]& z* W2 q, ~7 h% {9 z2 ]' F
修改后解决,可以直接双击工程名打开map。% T, P3 G2 b3 |% ~

! h8 {2 ?1 ?/ x+ b F2)_SDQ0U7FL7~)DPM4X_VA.png - c+ H" E4 k! W. \

0 ?! O% v( R! i8 u 75PAD%$YOHY7ASE2~36PN%L.png . \: J. m3 j$ M% O

, I, v! _& h; x' L2 V* x+ Y$ T* z$ g5 j: \5 _* [1 u, u) T( W8 y

9 b9 V0 X2 X; z% t$ d3 _
收藏 评论0 发布时间:2022-5-10 21:42

举报

0个回答

所属标签

相似分享

官网相关资源

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