? ? ?如果你使用stm32f10x_stdperiph_lib,会发现在stm32f10x.h文件会有一段关于宏选择的代码,如:
- #if?!defined?(STM32F10X_LD)?&&?!defined?(STM32F10X_MD)?&&?!defined?(STM32F10X_HD)?&&?!defined?(STM32F10X_CL)??
-
??/*?#define?STM32F10X_LD?*/???/*!<?STM32F10X_LD:?STM32?Low?density?devices?*/??
-
??/*?#define?STM32F10X_MD?*/???/*!<?STM32F10X_MD:?STM32?Medium?density?devices?*/??
-
??/*?#define?STM32F10X_HD?*/???/*!<?STM32F10X_HD:?STM32?High?density?devices?*/??
- ??#define?STM32F10X_CL????/*!<?STM32F10X_CL:?STM32?Connectivity?line?devices?*/??
- #endif??
?
??? 至于要使用哪个宏,则需要根据具体的芯片来进行选择。那么,这些宏又对应着哪些具体的芯片呢?其实我们可以在《Reference manual》的第九章中找到答案,如文档截图:
?
??? 这段话的意思很明显,如果是STM32F105xx和STM32F107xx,是Connectivity Line Devices,则宏定义选择的是STM32F10X_CL;如果是别的型号,则根据FLASH的容量来进行选择。可能文字写的有点不太清楚,还是以表格来说明:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 宏 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MCU?型号 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
? ? ? ? ? ? ? ? ? ? ? ? ? ? FLASH大小 ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
STM32F10X_LD |
STM32F101xx STM32F102xx STM32F103xx |
16 ~ 32 Kbytes |
STM32F10X_MD |
STM32F101xx STM32F102xx STM32F103xx |
64 ~ 128 Kbytes |
STM32F10X_HD |
STM32F101xx STM32F103xx |
256 ~ 512 Kbytes |
STM32F10X_CL |
STM32F105xx STM32F107xx |
忽略 |
??? 这些参数,和MDK的设备参数一致,如图所示:
?