初级会员

- 积分
- 158
- 金钱
- 158
- 注册时间
- 2015-4-12
- 在线时间
- 13 小时
|
1金钱
之前一直用的是原子个模板,今天自己按照原子个教程搭建模板,一样的设置,先说下我的平台配置,MDK5.12 ,器件包只有一个f103的2.0版本,芯片使用的是STM32F103ZET6,512ROM应该属于大容量,因此使用的启动文件是HD,其中所用的的库文件及其他文件是从原子哥的模板复制过来的(原子的模板在我的平台下完全没问题,没有任何错误,和警告,其功能正常),我搭建的平台出现了如下问题:
1,当我设置宏定义为USE_STDPERIPH_DRIVER时,应为我用到了定时器5中断,出现了
compiling main.c...
main.c(55): error: #20: identifier "TIM5_IRQn" is undefined
NVIC_Initstructure.NVIC_IRQChannel=TIM5_IRQn;
main.c: 0 warnings, 1 error
"main.c" - 1 Error(s), 0 Warning(s).
我的配置都是正确的,在原子哥的模板能正常编译。
2,我发现原子哥的宏定义还使用了STM32F10X_HD定义,于是我设置了跟原子个一样的宏定义USE_STDPERIPH_DRIVER,STM32F10X_HD,出现了
compiling main.c...
..\USER\stm32f10x.h(298): error: #67: expected a "}"
ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */
..\USER\stm32f10x.h(472): warning: #12-D: parsing restarts here after previous syntax error
} IRQn_Type;
main.c(55): error: #20: identifier "TIM5_IRQn" is undefined
NVIC_Initstructure.NVIC_IRQChannel=TIM5_IRQn;
main.c: 1 warning, 2 errors
"main.c" - 2 Error(s), 1 Warning(s).
我也觉得要使用STM32F10X_HD,在stm32f103x.h中有条件编译
#ifdef STM32F10X_HD
ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */
.........
TIM5_IRQn = 50, /*!< UART5 global Interrupt */
........
#endif /* STM32F10X_HD */
要使用的TIM5_IRQn就在其中,而不同的芯片定时器的数量也不通,所有不同芯片需要不同的宏定义,我在网上查看了资料,也有人出现这种问题,有的说是包不兼容1.0包,我的2.0既然原子哥的能用,想必不会有问题,
他们都是更新了包之后删掉了STM32F10X_HD宏定义,我如果不用TIM5_IRQn也不会出问题,可是,我是有TIM5_IRQn就出问题了,我想应该是他们没有想到的吧,有人说是启动文件有问题,我使用的是ZET6,属于大容量产品,而且原子哥使用的也是HD,我就是从他那儿复制过来的,
我也不认为是这个问题,思虑良久,未尝解疑,希望原子哥能帮我解答疑惑。
|
-
最佳答案
查看完整内容[请看2#楼]
我已经弄好了,我自己不用你模板里的文件库,用网上下的搭建了一个模板就没出错,你的模板如果把器件改下也会出错,比如你用的RC,改成ZET6就会有相同的问题,改回去又好了
|