第一周-keil的基础使用

任务目标

  1. 如何建工程。
  2. 如何配置与设置工程。
  3. 如何编译自己开发的程序。
  4. 如何调试。
  5. 如何用KEIL开发stm32开发底层程序。
  6. 如何下载编译过后的代码。
  7. 如何查看寄存器。
  8. 如何知道生成代码的地址。

……

keil的安装

默认已经安装完成。

keil的使用

1.如何新建工程(以STM32F1xx为例)

准备工作

  1. 新建工程文件夹

20200910131230.jpg

  1. 下载并解压官方的标准外设库

    20200910131420.jpg

  2. 1.中新建的文件夹下新建Libraries文件夹,用于存放标准外设库。

    20200910132209.jpg

  3. Libraries下新建CMSIS并将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport中的文件复制到CMSIS中;

    再将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的文件全部复制到CMSIS中。最终CMSIS中的文件如图。

    20200910132703.jpg

  4. STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver复制进Libraries文件夹,并将STM32F10x_StdPeriph_Driver改为FWLIB

  5. 在工程文件夹目录下新建User文件夹,随便写一个main.c放进去也行。

准备基本完成

新建工程

在keil中新建一个工程文件,如图:

20200910134356.png

保存到刚刚新建的文件夹中,如图:

20200910134725.jpg

随即选择所开发的芯片型号,如图(STM32F103C8为例):

20200910134909.jpg

确定之后跳出一个窗口,直接关掉(这是让选择启动引导等的,我们已经下载的库里有,所以跳过这一步)。点箭头指出的图表,然后删除掉SourceGroup1。

配置与设置工程

依次添加CMSIS、USER、FWLIB、STARTUP,并把刚刚复制在对应文件夹下的文件添加。注意的是STARTUP要选择NewProject\CMSIS\startup\arm中startup_stm32f10x_hd.s、startup_stm32f10x_ld.s、startup_stm32f10x_md.s三个中的一个,根据需要选取。文件类型选择所有。 FWLIB中只需要添加src中的.c文件即可。 CMSIS中不需要添加STARTUP中的文件。 添加完毕点击OK。

20200910140251.jpg

然后点击魔法棒,进入C/C++设置界面,在define一栏输入 USE_STDPERIPH_DRIVER ,并在includepath栏加入头文件路径。

20200910142503.jpg

至此,工程创建完毕。

*1.如何新建工程(以STM32F1xx为例 & 使用keil包管理器)

*1.1新建工程

20200910134356.png

*1.2选择芯片

20200914132806.jpg

*1.3添加组件

20200914132839.jpg

以点灯为例,只需要用到这三个标准库模块

20200914132925.jpg

*1.4添加用户文件夹并编写点灯程序

20200914133142.jpg
20200914133151.jpg

*1.5配置魔术棒

点击魔法棒,进入C/C++设置界面,在define一栏输入 USE_STDPERIPH_DRIVER

20200914133906.jpg

工程创建完成

2.编译程序

20200910144354.jpg

根据需求选择编译的方式,在下方输出窗口可以看到报错警告

3.调试

3.1硬件仿真调试

进入调试模式:

20200910220914.jpg

调试面板详解:

  1. 调试选项

    20200910221608.jpg

  2. 面板内容

    20200910222017.jpg

3.2软件仿真调试

修改魔法棒中Debug选项卡,如图:

20200912163606.jpg

Dialog DLL改为 DARMSTM.DLL

Parameter改为 -pSTM32F103C8(此项根据具体型号而定)

以引脚的逻辑分析为例

20200912164024.jpg

设置想要检测的引脚:

20200912164436.jpg

点击run即可查看引脚电平图像:

20200912164609.jpg

4.用KEIL开发stm32开发底层程序

在User文件夹下编写程序。

以点灯为例(使用库函数):

#include "stm32f10x.h"

int main(void)
{
    GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//开启对应时钟
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;//选择控制引脚
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置引脚模式为通用推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置引脚速率为50MHz
    GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO

    GPIO_ResetBits(GPIOC, GPIO_Pin_13);//点灯
    return 0;
}

5.下载编译过后的代码

以ST-Link仿真器为例。

  1. 安装并更新仿真器驱动。

  2. 用仿真器连接开发板。

    P00910-144702.jpg

  3. 设置魔法棒

    选择ST-Link进行调试

    20200910150123.jpg

    Flash下载设置

    20200910150151.jpg

  4. 点击下载

    20200910150450.jpg

  5. 查看运行情况

    灯泡点亮,程序正在运行。

    P00910-1507401.jpg

6.查看寄存器

在左侧寄存器面板查看:

20200910222017.jpg

具体的寄存器含义:

20200911080847.jpg

7.查看生成代码的地址

TZ8P67FZ29H9UIXV2YL.png

也可以在右下方Memory1选项卡中查看修改内存中存储的数据。

《第一周-keil的基础使用》有1个想法

发表评论

nv-author-image