Keil开发软件的使用
STM32F0xx库文件下载链接:链接:https://pan.baidu.com/s/1JNqzu9P2uvzp7tLNerLgFA
提取码:lpm1
打开Keil软件,主界面如下。
常用按钮具体说明
1、新建工程存放目录,这里新建名为“创建第一个工程”。在工程文件目录下依次创建“FreeRTOS”、“Libraries”、“Project”、“User”目录,分别存储FreeRTOS嵌入式系统源码、第三方库源码、系统文件、用户文件。此软件的工程结构目录用户可以自由定义,这里所创建的工程结构仅方便用户查看。
2、向工程目录中导入文件,首先将F0库文件进行解压,解压后将“\STM32F0xx_StdPeriph_Lib_V1.5.0\STM32F0xx_StdPeriph_Lib_V1.5.0\Libraries”目录文件夹下的文件复制到工程目录Libraries文件里。
3、进入“User”目录,创建“bsp_stm32f0xx”目录,用来存放底层文件。再次打开F0库文件,将“\STM32F0xx_StdPeriph_Lib_V1.5.0\STM32F0xx_StdPeriph_Lib_V1.5.0\Projects\STM32F0xx_StdPeriph_Templates”目录下的stm32f0xx_it.c、stm32f0xx_it.h和stm32f0xx_conf.h复制到“1、创建第一个工程\User\bsp_stm32f0xx”目录下。
4、进入“Project”目录,创建“MDK-ARM(uV5)”目录,用来存放MDK工程文件。创建“Flash”目录存放工程编译时生成的文件,“Flash”目录中创建“List”与“Obj”两个文件夹。点击软件菜单栏“Project”,选择“New uVision Project...”。输入工程文件名“project”,保存到“MDK-ARM(uV5)”目录中,点击“保存”按钮。
5、选择目标设备。本工程目标芯片为STM32F030C8,具体选择如下,然后点击OK确定。
6、配置运行时环境。此界面实质是选择第三方库,本工程使用标准库进行开发,这里点击“Cancel”取消。
7、工程创建完成,左侧工程结构中才是软件所识别的工程结构,与刚刚所创建的目录无关。
2、修改工程目标、工程文件分组、添加工程文件。
3、将工程目标名改为Flash,将Source Group 1工程文件名改成User。并且分别添加StdPeriph_Driver、MDK-ARM、CMSIS三个工程文件分组。
4、新建文本文件,并保存,文件名为main.c。
5、在main.c文件中添加芯片头文件与main函数并保存。
6、将main.c文件和之前从库文件中复制的stm32f0xx_it.c文件添加到User分组下。
7、将工程“Libraries\STM32F0xx_StdPeriph_Driver\src”目录下的.c文件添加到StdPeriph_Driver分组下。
8、将工程“\Libraries\CMSIS\Device\ST\STM32F0xx\Source\Templates\arm”路径下的startup_stm32f0xx.s文件添加到MDK-ARM分组下。
9、将工程“\Libraries\CMSIS\Device\ST\STM32F0xx\Source\Templates”路径下system_stm32f0xx.c文件添加到CMSIS分组下。
10、详细配置,可以参考“创建第一个工程”中的工程结构配置。
1、点击工程选项配置按钮。
2、“Device”页面在创建工程时已经设置为STM32F030C8,这里不需要修改。
3、“Target”页面中,当使用C语言printf等函数时需要勾选“Use MicroLIB”。
4、“Output”页面中,勾选“Create HEX File”选项,编译时生成hex文件。点击“Select Folder for Objects...”按钮,选择编译时生成文件的存放目录。本工程选择“Translate\Project\MDK-ARM(uV5)\Flash\Obj”目录。输出的文件名设置为“output”。
5、“Listing”页面中,点击“Select Folder for Listings...”按钮,选择链接时生成文件的存放目录。
6、“User”页面中,分别可以设备编译前执行的命令、构建前执行的命令、构建后执行的命令。此处设置了版本自动更新脚本、HEX文件拷贝脚本、及bin文件生成指令。可参考飞控源码中设置。
7、“C/C++”页面中,设置了工程中使用的宏定义、编译器优化等级、C语言版本支持、工程中所使用的头文件路径。
8、具体头文件路径设置如下:
9、“Asm”页面为汇编语言设置选项,“Linker”页面为连接器设置选项,使用默认即可。
10、“Debug”页面中有一个很重要的按钮,用来设置调试器及目标Flash参数。本文档使用J-Link调试,所以选择“J-LINK/J-TRACE Cortex”,然后点击“Settings”按钮。
11、当接入J-Link调试器后,打开的界面中会有J-Link设备相关信息。“Debug”页面默认配置即可,点击“Flash Download”选项卡,配置Flash相关参数。
12、“Flash Download”页面可以勾选“Reset and Run”表示下载后立即复位并运行。同时下方已经默认包含Flash信息,如果没有默认信息,需要手动点击“Add”按钮进行添加。
13、最后一页“Utilities”工具设置,使用默认配置。
工程编译下载后,点击按钮进入调试界面。调试界面详细功能如下图:
常用调试按钮具体说明:
复位按钮:程序运行指针指向复位地址。
程序运行按钮:程序暂停时可以点击此按钮继续运行。
按步执行:针对微处理器开发的开发者,使用的基本是面向过程的编程语言,在编程的过程中或许会出现一些逻辑错误,因此通过按步执行按钮来审核程序执行过程中是否符合开发者的思路。按钮可以进入调用函数;按钮可以跳过调用函数;由于函数在手动运行的时候无法跳出事件循环函数,因此需要按钮来跳出循环。
按钮:该按钮可以调用出watch window窗口,该窗口可用于实时查询微处理器中自定义的全局变量,可以在程序运行的过程中通过查询自定义变量数值的变化来判定程序运行的情况,这是个很实用的功能。
按钮:该按钮可以调用出serial window,用于观测串口采集的值,通过该窗口可以实现Keil MDK与微处理器之间的数据交换。
按钮:该按钮为memory window,存储器窗口可以显示内存中的值,通过Address后的编辑框内输入“字母:数字”就可以显示相应内存值,其中字母可以使C、D、I、X,分别为:代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、拓展的外部RAM空间;数字代表想要查看的地址,比如输入D:0 观测地址0开始的片内RAM单元值、输入C:0表示读取地址0开始的ROM单元中的数值。