前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【STM32】软件资源及开发环境

【STM32】软件资源及开发环境

作者头像
DevFrank
发布2024-07-24 14:57:18
1270
发布2024-07-24 14:57:18
举报
文章被收录于专栏:C++开发学习交流
文章目录

  • MDK5
  • 固件库
  • 新建工程模板
  • 程序下载

MDK5

MDK5的组成如下(核心包括4个部分:uVision IDE with Editor(编辑器),ARM C/C++ Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。Software Packs(包安装器)又分为:Device(芯片支持),CMSIS(ARM Cortex 微控制器软件接口标准)和 Mdidleware(中间库)三个小部分):

准备好MDK5安装包和F1的芯片支持:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装完成后离线导入芯片支持包即可:

在这里插入图片描述
在这里插入图片描述

固件库

我们下面都用库函数开发,首先介绍一下库函数。固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API)。

例如,再51中直接操作寄存器:

代码语言:javascript
复制
P0=0x11;

32中也可以直接操作寄存器:

代码语言:javascript
复制
GPIOx->BRR = 0x0011;

但STM32的寄存器太多了,为了方便开发者,官方才推出固件库函数,如下:

代码语言:javascript
复制
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
 GPIOx->BRR = GPIO_Pin;
}

但要精通STM32,还是要了解以下寄存器实现的原理的。

Cortex-M3芯片的结构如下:

为了让所有使用Cortex-M3芯片的公司软件兼容,ARM和芯片商共同提出了CMSIS标准(Cortex Microcontroller Software Interface Standard),即微控制器软件接口标准。STM32也适用。下面是基于CMSIS的应用程序结构:

在这里插入图片描述
在这里插入图片描述

CMSIS 分为 3 个基本功能层:

  1. 内核外设访问层:ARM 公司提供的访问,定义处理器内部寄存器地址以及功能函数。
  2. 中间件访问层:定义访问中间件的通用 API,也是 ARM 公司提供。
  3. 器件外设访问层:定义硬件寄存器的地址以及外设的访问函数。

可以看出,CMSIS 层在整个系统中是处于中间层,向下负责与内核和各个外设直接打交道,向上提供实时操作系统用户程序调用的函数接口。通过制定标准,其他公司设计的库函数都得到了规范。例如,CMSIS 规范就规定,系统初始化函数名字必须为 SystemInit。

新建工程模板

用Keil新建工程,选择芯片型号STM32F103ZET6:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

到这里,我们还只是建了一个框架,还需要添加启动代码,以及.c 文件等。

创建完成如下,并将相关文件复制到指定文件夹(不赘述):

在这里插入图片描述
在这里插入图片描述

然后进入管理工程,将创建的目录添加进工程:

在这里插入图片描述
在这里插入图片描述

然后将相关C代码添加进来:

在这里插入图片描述
在这里插入图片描述

工程目录如下:

在这里插入图片描述
在这里插入图片描述

然后编译工程,首先选择中间文件生成目录:

在这里插入图片描述
在这里插入图片描述

选择需要包含的头文件目录:

在这里插入图片描述
在这里插入图片描述

另外,库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量:STM32F10X_HD,USE_STDPERIPH_DRIVER

在这里插入图片描述
在这里插入图片描述

然后编译:

工程模板基本建立完毕,然后还需要进行一些额外的配置:

让编译之后能够生成 hex 文件;

在这里插入图片描述
在这里插入图片描述

编译生成hex文件后,此时只接上USB_232串口就可以下载程序到板上了:

效果如下:

zdyz还提供了三个函数,我们可以直接加到工程中,后面方便调用:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序下载

除了用串口下载hex文件外,还可以通过ST-Link的SW方式下载,这种方式比较快,可以实时跟踪调试,推荐使用。

设置好使用ST-Link及相关频率:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

并设置好Dialog DLL,以支持STM32的软硬件仿真:

在这里插入图片描述
在这里插入图片描述

此外,还要安装ST-Link的驱动,否则会显示找不到目标器件:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • MDK5
  • 固件库
  • 新建工程模板
  • 程序下载
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档