建立工程时又出问题了!!!有点郁闷。
一、MDK建立新工程
1.老提示s32未定义,原因是未添加stm32f10x.h到USRE
2.添加后仍报错,对比例程发现少了system_stm32f10x.c
stm32f10x_it.c 两文件,将其复制到USER。
3.复制到USER后仍有错内容:
stm32f10x_it.c(78): error: #1270: entity declared as alias cannot have definition
D:\electric\Keil uV4\ARM\Inc\ST\STM32F10x\stm32f10x_it.h(36): error: #1268-D: declaration aliased to undefined entity "SysTickHandler"
D:\electric\Keil uV4\ARM\Inc\ST\STM32F10x\stm32f10x_it.h(35): error: #1268-D: declaration aliased to undefined entity "PendSVC"
这里是将SysTick_Handler重定向到SysTickHandler了,我记得ST的启动文件中的中断向量表里是SysTick_Handler,这里为何重定向至SysTickHandler,
难道是用了rtos并重写了SysTick中断?如果没用rtos就将stm32f10x_it.h里的滴答中断的声明改为void SysTick_Handler(void);
就是去掉后面的__attribute__ ((alias("SysTickHandler")))
4.关于建立工程时需注意的几点
在USER中需添加的文件有 如下五个:
stm32f10x.h
system_stm32f10x.c
stm32f10x_it.c
stm32f10x_conf.h
stm32f10x_it.h(需按上述第三步修改)
二、自己建了一个小分立文件
1.包含两部分
(1).c 文件中需包含函数中所用的硬件如LED,KEY等的头文件
(2).h 先包含库文件 #include "stm32f10x.h",再自定义头文件名称,
然后声明void该函数中所具体包含的函数
格式如下:
#include "stm32f10x.h"
#ifndef fun_H
#define fun_H
void fun1(void);
void fun2(void);
void fun3(void);
#endif
2.工程设置
(1)将文件所在路径添加至工程路径 c/c++中的include pathes
(2)将文件夹添加至工程,project
|