微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > STM32 自学笔记(二) keil MDK建立新工程

STM32 自学笔记(二) keil MDK建立新工程

时间:10-02 整理:3721RD 点击:

建立工程时又出问题了!有点郁闷。

一、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 havedefinition

D:\electric\KeiluV4\ARM\Inc\ST\STM32F10x\stm32f10x_it.h(36): error:  #1268-D: declaration aliased to undefinedentity "SysTickHandler"

D:\electric\KeiluV4\ARM\Inc\ST\STM32F10x\stm32f10x_it.h(35): error:  #1268-D: declaration aliased to undefinedentity "PendSVC"

这里是将SysTick_Handler重定向到SysTickHandler了,我记得ST的启动文件中的中断向量表里是SysTick_Handler,这里为何重定向至SysTickHandler,

难道是用了rtos并重写了SysTick中断?如果没用rtos就将stm32f10x_it.h里的滴答中断的声明改为voidSysTick_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


不错  就是这样建的

现在正在看smt3

看看,学习一下!

好贴就要顶一顶~~~~·

还是有问题啊,不知道怎么回事。E:\Program Files\STM32\Keil\ARM\INC\ST\STM32F10x\stm32f10x_type.h(62): error:  #101: "ERROR" has already been declared in the current scope

错误提示stm32f10x_type.h文件已声明,你是不是把默认的启动文件添加了,如果是的话,在刚建立文件在弹出“是否添加启动文件”对话框时点击“否”

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top