stm32編譯出問題解決
仿照原子自己建立工程的時候出現(xiàn)的問題修改:
問題及修改:
1)..SYSTEMdelaydelay.c(27): error:
解決方法:在delay.c中添加“#include"misc.h"”
2)..SYSTEMsyssys.c(18): error:
解決方法:在sys.c中添加“#include"misc.h"”
3). ..SYSTEMusartusart.c(75): error:
解決方法:在usart.c中添加“#include”stm32f10x_gpio.h””
4)..SYSTEMusartusart.c(77): error:
解決方法:在usart.c中添加“#include"stm32f10x_usart.h"”
5)..SYSTEMusartusart.c(80): error:
解決方法:在usart.c中添加“#include"misc.h"”
6)..SYSTEMusartusart.c(82): warning:
解決方法:在usart.c中添加“#include"stm32f10x_rcc.h"”
7)..HARDWARELEDled.c(22): error:
解決方法:在led.c中添加“#include"stm32f10x_gpio.h"”
8)..HARDWARELEDled.c(25): error:
解決方法:在led.c中添加“#include"stm32f10x_rcc.h"”
20150318
..SysTick_LED.axf: Error: L6218E: Undefined symbol uart_init (referred from main.o).
這個錯誤說的是在main函數(shù)中引用了uart_init()函數(shù),但是這個函數(shù)沒有被定義。
其實這個函數(shù)是在uart.c中定義的并且在uart.h中做了聲明,uart.h也被包含進了main函數(shù)了。
出問題的原因是這樣的:uart.c中uart_init()函數(shù)是定義在預(yù)編譯命令對
#if EN_USART1_RX
...............
#endif
中的。而#define EN_USART1_RX
#define EN_USART1_RX
20150321
編譯沒有錯誤,但是串口無法向串口中斷打印信息,原因是串口輸出要用到相應(yīng)的GPIO,程序中忘了使能這些IO的時鐘,使能一下就好了。
評論