STM32学习札记

开始学习STM32,用的是 秉火F429挑战者开发板,把学习中一些查倒的资料汇总,以及各种解决的问题汇总在此,也算是对自己的一个督促。

1、缺少编译器配置文件

开始编程,用STM32控制LED灯。代码稍微改了一下没反应,把原始代码拷过去还是没反应。 
结果是工程文件夹下没有 JLinkSettings.ini 配置文件

2、编译出错

(1)宏定义出错

编译出错error:command-line:#992:inva maco definition:STM3210X_HD.USE_STDPERIPH_DRIVER 
全局宏定义标识符中间用逗号隔开,你用的点号。。。 
STM3210X_HD.USE_STDPERIPH_DRIVER 
中间那个换成逗号(半角)而不是点, 改为:STM3210X_HD,USE_STDPERIPH_DRIVER 
来自 http://www.openedv.com/posts/list/48091.htm

(2)重复定义去掉不用的C文件

编译出错 Symbol SystemCoreClock multiply defined (by system_stm32f10x_1.o and system_stm32f10x.o). 
来自 http://www.firebbs.cn/thread-15533-1-1.html 
把system_stm32f10x_1.c这个C文件从工程里面去掉。

(3)TimingDelay函数问题

TimingDelay_Decrement编译相关问题 
出现stm32f10x_it.c(143): warning: #223-D: function "TimingDelay_Decrement" declared implicitly 
解决方案:去掉stm32f4xx_it.c中的 TimingDelay_Decrement()函数 
void SysTick_Handler(void) 
{ 
TimingDelay_Decrement(); 
} 
其它决方案:在stm32f10x_it.c文件中,外部声明extern void TimingDelay_Decrement(void); 
来自 https://blog.csdn.net/u013199724/article/details/22782805

stm32编译出错,Undefined symbol TimingDelay_Decrement (referred from stm32l1xx_it.o). 
来自 http://www.openedv.com/thread-32917-1-1.html 
TimingDelay_Decrement所在的头文件没加到stm32l1xx_it.c中或者stm32l1xx_it.h中 
void SysTick_Handler(void) 
{ 
TimingDelay_Decrement(); 
} 
去掉TimingDelay_Decrement()函数

有些数据结构使用extern声明了,但是原型的声明无法找到,可能是因为被删除,或者忘了把对应模块的.c文件添加到工程中。

猜你喜欢

转载自blog.csdn.net/nomil9/article/details/80874885