嵌入式软件/开发板
首先,打开Keil,选择Project-》New uVision Project,选择合适的文件夹,输入工程名后,点击保存,建立工程。
如下图,在Template文件夹下建立工程名为stm32_demo的工程。
然后我们选择器件,以STM32F103RB为例(STM32其他系列可类推),在STMicroelectronics栏中选择STM32F103RB,如下图,在图右侧我们可看到关于芯片的描述。
点击确定后弹出如下的对话框,问需不需要添加启动文件(此启动文件为MDK自带的),
在这里,选择否(N),等会我们会添加STM32固件库中的启动文件。
接下来,我们要建立几个文件组,用来存放不同的源文件,让整个工程目录结构清晰,点击中的后如下图所示
点击中的可建立一个文件组,可以删除分组,下面我们将建立User,StdPeriph_Drive,CMSIS,MDK-ARM四个文件组,User用来存放与用户有关的文件,StdPeriph_Drive用来存放库函数中的外设驱动文件,CMSIS用来放于Cortex_M3内核有关的文件,MDK-ARM用来存放启动文件,文件组建立好后,如下图所示。
点击OK,我们可看到文件组如下所示
接下来,我们将对固件库文件夹(如下图所示)与Template文件夹中的文件进行操作。
将固件库文件夹中的Libraries文件夹复制到工程目录下(即刚才建立的Template文件夹下),并在Template下建立User与Output两个文件夹,User用来放与用户代码有关的文件,Output用来存放编译后产生的中间文件。
打开Template文件夹后如下图所示。
然后,将
STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_Stdperiph_ExamplesGPIOIOToggle
目录下main.c,stm32f10x_conf.h,stm32f10x_it.h,stm32f10x_it.c四个文件复制到User目录下。
至此,文件的操作结束。
重新点击,现在我们要向各个文件组中添加文件。
首先是User文件组,点击Add Files,然后添加User文件夹下的3个C文件,如下图所示。
然后是StdPeriph_Drive文件组,向其添加LibirariesSTM32F10x_StdPeriph_Driversrc下的所有源文件,如下图所示
然后是CMSIS文件组,向其添加LibirariesCMSISCM3CoreSupport下的core_cm3.c和
LibirariesCMSISCM3DeviceSupportSTSTM32F10x下的system_stm32f10x.c文件,如下图所示
然后是MDK-ARM文件组,向其添加启动文件,启动文件在
LibirariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm下,因为我们选择的芯片型号为STM32F103RB,故向其添加startup_stm32f10x_md.s,如下图所示,其他类型芯片可根据芯片容量来选择相应的启动文件
完成后,点击OK,至此,文件组的文件添加完毕。
接下来,我们将进行编译选项的设置
选择中的,在Target栏中勾选,Output栏中点击,选择Template文件下下的Output文件夹,并且勾选,Listing栏中点击
,选择Output文件夹,最后要在C/C++选项栏中设置好宏定义与文件包含路径。
宏定义设置如下,其中STM32F103RB对应的宏定义STM32F10X_MD,可以根据其他芯片型号改变宏定义。
文件包含路径设置如下,
点击
中的 来添加文件路径,在此要添加4个文件路径,如下图所示
接下来是最后一步了,将main.c文件中的第24行#include “stm32_eval.h”注释掉即可。
点击编译后,编译即可通过。
编译的结果如下:
主函数是一个关于IO翻转的例子,我们可以通过软件仿真来看波形。
点击
中的,然后选择
中的(波形仿真),点击后如下图所示
点击后如下图所示
点击新建要观察的信号,在此处应输入PORTD.0与PORTD.2两个信号,设置好后点击Close,点击,仿真开始,我们可以观察到的波形如下图所示
至此,库函数的移植结束。
关于库函数的使用,大家可以参考官方关于固件库的手册。
全部0条评论
快来发表一下你的评论吧 !