//=====================================================================
, b6 `, i) T/ y$ m/ y( P" W" |* y//TITLE:
% H3 J* d' z0 y8 K& c* _! J1 R: z' M// STM32F10X_XX宏定义的选择
+ O, N2 J2 @ `6 D1 u. w+ ~//AUTHOR:
0 a$ o2 t; ]+ \. z8 [6 ~8 P// norains
* u- J) F5 v/ \3 [) u- t7 L//DATE:
7 W4 _9 F r" p' U2 R& f |& P// Tuesday 12-October-2010/ C9 X( g! S9 U- m: P
//Environment:
" W9 `; p; _+ S8 j5 p1 m// KEIL MDK 4.0& [3 N9 F) R! i& X, X" a/ w$ [" z
// RedCow Board- F. A: y5 F1 v! u# Q0 T4 Y7 e
//=====================================================================
`9 \6 _( C) g, m, M* |2 t
1 U" b; E$ O; N7 D 如果你使用stm32f10x_stdperiph_lib,会发现在stm32f10x.h文件会有一段关于宏选择的代码,如:- x) p0 Z$ ~" ~1 N8 `8 M
9 Y" b- \4 L5 g. {5 ?+ {6 C. p- #if !defined (STM32F10X_LD) && !defined (STM32F10X_MD) && !defined (STM32F10X_HD) && !defined (STM32F10X_CL)/ Z- v: @) N2 C5 Z0 q8 ?; S, |5 v
- /* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */
6 }% ?) q' K4 P0 R1 t8 n, U - /* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */6 w. c: L: s) I/ N; w
- /* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */9 V1 g9 B6 M$ C0 F2 X
- #define STM32F10X_CL /*!< STM32F10X_CL: STM32 Connectivity line devices */
) G, _) j0 E/ \1 \% t5 A( e) |2 C - #endif
复制代码 $ y- R' t. I( i7 Q
至于要使用哪个宏,则需要根据具体的芯片来进行选择。那么,这些宏又对应着哪些具体的芯片呢?其实我们可以在《Reference manual》的第九章中找到答案,如文档截图:6 U% ~+ E9 b# g3 C4 l
1 s3 ?* I! q4 p- K/ e2 b( j7 S1 t6 Z8 ~# E2 C% o; @
( _; `4 K% C( v. l. f! p" L, @+ ?2 L5 d9 I6 a& D7 A: I3 [
这段话的意思很明显,如果是STM32F105xx和STM32F107xx,是Connectivity Line Devices,则宏定义选择的是STM32F10X_CL;如果是别的型号,则根据FLASH的容量来进行选择。可能文字写的有点不太清楚,还是以表格来说明:
+ p, p& j7 d1 k7 N# u- h! V) m3 M5 U" a3 l0 s, F8 C
E- O9 Y# D3 S7 _/ ~$ I% B" B1 t R) T. L: l% r, [! J7 ~
这些参数,和MDK的设备参数一致,如图所示:
/ J3 }- @2 T8 f/ V# h
& m' D; e, m0 R; `. A3 E8 R0 Q. S& Z( ^3 G# K8 m) H! L# d' Q
|