stm32編譯出問(wèn)題解決
仿照原子自己建立工程的時(shí)候出現(xiàn)的問(wèn)題修改:
問(wè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).
這個(gè)錯(cuò)誤說(shuō)的是在main函數(shù)中引用了uart_init()函數(shù),但是這個(gè)函數(shù)沒(méi)有被定義。
其實(shí)這個(gè)函數(shù)是在uart.c中定義的并且在uart.h中做了聲明,uart.h也被包含進(jìn)了main函數(shù)了。
出問(wèn)題的原因是這樣的:uart.c中uart_init()函數(shù)是定義在預(yù)編譯命令對(duì)
#if EN_USART1_RX
...............
#endif
中的。而#define EN_USART1_RX
#define EN_USART1_RX
20150321
編譯沒(méi)有錯(cuò)誤,但是串口無(wú)法向串口中斷打印信息,原因是串口輸出要用到相應(yīng)的GPIO,程序中忘了使能這些IO的時(shí)鐘,使能一下就好了。
評(píng)論