介绍如何使用 KEIL5 软件创建寄存器模板, 方便之后使用寄存器方式来操作STM32开发板上的LED,让大家创建属于自己的寄存器工程模板。

获取工程模板的基础文件

首先我们在电脑任意位置创建一个文件夹,命名为“寄存器模板创建”,然后在其下面新建 2 个文件夹,如下:

Obj 文件夹: 用于存放编译产生的 c/汇编/链接的列表清单、 调试信息、hex文件、预览信息、封装库等文件。

User 文件夹: 用于存放用户编写的 main.c、 STM32F1 启动文件、stm32f10x.h头文件。

我们需要将寄存器工程模板所需的基础文件 main.c、STM32F1 启动文件及stm32f10x.h 头文件放入到 User 文件夹内。在工程实例的User文件夹内可以找到这三个文件。复制后 User 文件夹内文件如下:

创建寄存器工程

打开 KEIL5 软件,新建一个工程,工程名根据喜好命名,但是要注意使用英文,如果使用中文名可能会出现一些奇怪的错误,这里我们命名为 Template,直接保存在 “寄存器模板创建”文件夹下。具体步骤如下:

根据你开发板使用的 CPU 具体的型号来选择,如果这里没有出现你想要的CPU型号,或者一个型号都没有,那么肯定是你在安装 KEIL5 软件的时候没有添加芯片包,KEIL5 不像 KEIL4 那样自带了很多 MCU 的型号,KEIL5 需要自己添加,可以参考我们视频 KEIL5 软件的安装。

选择完 CPU 点击 OK 后会弹出在线添加固件库文件的界面,我们在使用寄器操作 STM32 的时候不需要此步,所以直接关闭即可。

给工程添加文件

在新建的工程中添加文件,双击Group 文件夹就会出现添加文件的路径,然后选择文件即可。添加文件完成后工程组如下:

配置魔术棒选项卡

这一步的配置工作非常重要,很多人自己编写程序编译后发现找不到 HEX文件,还有的人做后面 printf 实验时打印不出信息,这些问题都是在这个地方没有配置好导致的。

(1)Target 中选中微库“Use MicroLib”,主要是为了后面 printf 重定向输出使用。其他的设置保持默认即可,配置如下:

(2)Output 选项卡中把输出文件夹定位到我们工程目录下的 Obj 文件夹,如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上。配置如下:

(3)Listing 选项卡中把输出文件夹也定位到我们工程目录下的 Obj 文件夹。其他设置默认,配置如下:

(4)ARM 仿真器配置。只有当你的仿真器安装好驱动并且连接了电脑和板子,那么就可以开始配置。具体的配置如下(首先,我们已经将 ARM 仿真器连接开发板):

根据自己仿真器的型号进行选择,之后点击“Settings”,如果你的型号没有选择错误的话,自动会识别你的 ARM 仿真器 ID 了,然后即可设置SW 或者JTAG 模式以及复位的方式,大家可以选择性使用 SW 或者 JTAG 模式。如果使用SW 模式的话,必须勾选前面的 SWJ 复选框。

(5)芯片型号选择。同样在上一步的那个 Debug 选项卡内进行设置,点击Settings,选择 Flash Download 选项卡,在框 3中的 Reset and Run 选项中,如果勾上的话,当程序下载进去后自动复位运行,如果不勾上,程序下载进去后需按下开发板上复位键才能运行。通常我们选择勾上。具体配置如下:

最后点击 OK 按钮即可。然后双击工程组中的 main.c 文件,输入代码:

 1 #include "stm32f10x.h"
2
3 void SystemInit(){
4
5
6
7 }
8
9 int main()
10
11 {
12
13 while(1){
14
15
16
17 }
18
19 }

把stm32f10x.h文件内容清空之后编译,结果0错误0警告,表明我们创建的寄存器模板完全正确。到这一步我们的寄存器模板才算真正创建好。在前面配置魔术棒时,已经配置好了仿真器, 将ARM仿真器与开发板上的10针接口连接好后,点击标号“Load”即可将程序下载到开发板内。

STM32入门系列-创建寄存器模板的更多相关文章

  1. STM32入门系列-启动文件介绍

    在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从"复位"到"开始执行 main 函数"中间这段启动时间所必须进行的工作.它完成的具体工作有: ...

  2. STM32入门系列-库目录及文件介绍

    已经介绍了过了CMSIS标准,ST公司按照这个标准设计了一套基于STM32F10x的固件库,我们可以直接在ST公司的官网进行下载,现在给大家STM32最新固件库v3.5,在网盘上给大家提供了下载包,链 ...

  3. STM32入门系列-CMSIS标准

    使用寄存器点亮开发板上LED,这种开发方式显然是不适合大众,对于STM32这样庞大的芯片,内部寄存器实在太多,如果操作的外设比较多,那么就需要花很多时间查询底层寄存器内容,而且即使程序写好,如果要换其 ...

  4. STM32入门系列-存储器与寄存器介绍

    介绍两部分内容: 什么是存储器映射 什么是寄存器及寄存器映射 为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础.等明白了如何使用 C 语言封 ...

  5. STM32入门系列-使用C语言封装寄存器

    前面文章介绍了存储器映射.寄存器和寄存器映射,这些都是为了介绍使用 C语言封装寄存器做铺垫.这里我们通过一个实例来对 C 语言封装寄存器进行介绍. 具体实例:控制 GPIOC 端口的第 0 管脚输出一 ...

  6. STM32入门系列-学习STM32要掌握的内容

    STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令).S(系统).D(数据)三条信号 ...

  7. STM32入门系列-使用库函数点亮LED软硬件分析

    电路图分析 首先找来单片机的原理图,根据原理图进行相关的设计工作. 例如在上图中相同网络标号表示它们是连接在一起的,因此D1发光二极管阴极是连接在STM32的PC0管脚上,D2指示灯阴极连接在PC1管 ...

  8. STM32入门系列-开发工具keil5安装

    主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字"KEIL5下载",找到其官方网站www.keil.com. ...

  9. STM32入门系列-STM32时钟系统,时钟使能配置函数

    之前的推文中说到,当使用一个外设时,必须先使能它的时钟.怎么通过库函数使能时钟呢?如需了解寄存器配置时钟,可以参考<STM32F10x中文参考手册>"复位和时钟控制(RCC)&q ...

随机推荐

  1. Cookies题解

    来源:<算法竞赛进阶指南> Describe: 有M块饼干要分给N个孩子.当有k个孩子分到的饼干数比第i个孩子分到的多时,会产生g[i]*k的贡献.求最小的贡献及任意一种方案. Solut ...

  2. PJzhang:CVE-2020-1472微软NetLogon权限提升漏洞~复现

    猫宁~~~ 虚拟机上进行 安装windows 2008 R2 查看服务器ip 本地连接属性,取消ipv6,ip设置为192.168.43.158,子网掩码255.255.255.0,网关192.168 ...

  3. python+pymysql访问mysql数据库

    今天跟大家分享两种场景的python连接MySQL方法: 场景一:连接远程MySQL 首先,安装pymysql:在命令行执行pip install pymysql指令. 然后,导入pymysql: i ...

  4. 简单两步实现Android app 本地设置信息的保存与调用

    调用值 SharedPreferences preferences = this.getSharedPreferences("mspda", 0); lblVer.setText( ...

  5. Leetcode-栈&队列

    20. 有效的括号 https://leetcode-cn.com/problems/valid-parentheses/ 给定一个只包括 '(',')','{','}','[',']' 的字符串,判 ...

  6. Python练习题 016:猴子吃桃

    [Python练习题 016] 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到 ...

  7. 使用SSM框架实现图片的上传

    SSM实现图片上传功能 效果 在前端页面点击上传图片功能按钮,即弹出文件管理器,选择图片并上传: 思路 在前端页面添加 input 标签,type选择file. 在后端controller编写方法. ...

  8. Python实现的数据结构与算法之双端队列详解

    一.概述 双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的线性数据结构.双端队列也拥有两端:队首(front).队尾(rear),但与队列不同的是,插入操作在两 ...

  9. PADS Layout VX.2.3 灌铜之后没有显示整块铜皮的原因

    操作系统:Windows 10 x64 工具1:PADS Layout VX.2.3 灌铜之后没有显示整块铜皮,如下图所示: 点击菜单Tools > Options...(快捷键:Ctrl + ...

  10. 【比赛记录】8.21 div2

    A 选择一个点\(B(x,0)\)使得\(|dis(A,B)-x|=k.\) 题目实际上就是找到一个最接近\(n\)的数,使得它可以分成两个数\(a,b,\)使\(a-b=k.\) 我们考虑先分成一个 ...