Keil宏定义和如何知道单片机资源名称
扫描二维码
随时随地手机看文章
在Keil的工程设置中需要根据所选单片机来更改宏定义,如果程序移植后,宏定义没有更改过去,有时候会报错。
这个宏定义代表了芯片的类型,如下:
因此需要根据自己芯片的类型,更改宏定义。
如何知道自己芯片的资源名称呢?比如定时器叫什么名字?
可以打开stm32f10x.h文件,往下拉可以看见:
这些宏定义代表:
STM32F10X_LD_VL 对应于 LowDensity ValueLine,即小容量的STM32F100
STM32F10X_MD_VL 对应于 MediumDensity ValueLine,即中等容量的STM32F100
STM32F10X_HD_VL 对应于 HighDensity ValueLine,即大容量的STM32F100
STM32F10X_CL 对应于 ConnectivityLine,即STM32F105、STM32F107
其实更常用的是STM32F103:
STM32F10X_LD 对应于 LowDensity ,即小容量的STM32F103、101
STM32F10X_MD 对应于 MediumDensity ,即中等容量的STM32F103、101
STM32F10X_HD 对应于 HighDensity ,即大容量的STM32F103、101
比如芯片是STM32F103C8T6,flash是64K,是中等容量的STM32F103,即STM32F10X_MD ,因此对应到stm32f10x.h文件下的:
可知到,该芯片有TIM2、TIM3、TIM4三个普通定时器,有TIM1一个高级定时器,串口有三个。。。