Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >keil MDK5搭建STM32开发环境

keil MDK5搭建STM32开发环境

作者头像
全栈程序员站长
发布于 2022-08-25 07:37:05
发布于 2022-08-25 07:37:05
2.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

1. 安装keil

到keil的官方网站 http://www.keil.com/download/product/ 下载MDK-ARM并安装,注意可以更改安装路径,但是不能安在需要管理员权限的文件夹,例如不能在Program Files,否则会出现一些问题。

2. 注册

未注测有代码容量限制,需要破解。网上找KEIL_Lic。

3. 安装器件包

打开Pack Installer

左边选择STMicroelectronics,右边选择需要的芯片系列,我的是STM32F4。

install:需要安装 update:需要升级 up to date:已安装到最新版

安装的时间比较长,需要等等。

4. 建立新工程

  1. 新建工程要选择在一个空文件夹,会建立很多文件。
  1. 之后会出现如下窗口,选择对应芯片型号
  1. 下一步会出现运行环境管理器窗口,这是通过选项配置需要的官方库

CMSIS -> CORE 必选 Device -> Startup 必选 如果要启用GPIO,则选择 STM32Cube HAL -> GPIO,会出现如下情况:

黄色 代表需要依赖其他库,会在下方提示需要的库,单击定位到选项 绿色 代表该库已经可用 红色 代表与其他库冲突 选择 STM32Cube HAL -> GPIO后按提示把所有需要的库都选上。

  1. 配置target选项(疑惑)

如果包含的头文件是#include "stm32f4xx.h",则需要在Define中填写USE_HAL_DRIVER(这个宏的作用是启用外设),STM32F429XX可以不填。 如果直接包含头文件#include "stm32f4xx_hal.h",则可以在Define中什么都不用填,就能正常使用外设。 为何会有两种方法,我还不明白。

5. 第一个程序

对Source Group1右键,添加一个c源文件,命名为main。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//这是点亮一个LED的程序,LED接在PG13
#include "stm32f4xx_hal.h"

int main()
{
    __GPIOG_CLK_ENABLE();
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.Pin   = GPIO_PIN_13;
    GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull  = GPIO_PULLDOWN;
    GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
    HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
    while (1) {
        HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_SET);
    }
}

包管理器下载的F4库是hal库,F10x的库是以前的标准库,有些语句不同,需要注意: STM32F4xx:GPIO_InitStructure.Pin STM32F10x:GPIO_InitStructure.GPIO_Pin

STM32F4xx:GPIO_PIN_All STM32F10x:GPIO_Pin_All

STM32F4xx:HAL_GPIO_Init( ) STM32F10x:GPIO_Init( )

如果不确定自己芯片的函数名,最好去看看头文件里的定义。

6. 生成HEX文件

点击魔术棒打开配置窗口,到Output选项卡,勾选Create HEX File,编译后就会在Objects文件夹生成HEX文件。

7. 获取并安装ST-Link驱动

我用的开发板是用ST-Link烧录程序,只说ST-Link的用法了。 到st的ST-Link官方页面下载驱动:

下载STM32 ST-LINK utility,:

在页面的最下面,不容易看到:

STM32 ST-LINK utility包括驱动和烧录程序的软件。

8. ST-LINK utility的使用

第六个图标是烧录程序,点击后会要求选择一个HEX或bin文件,选完后点start就会烧录程序。 注意程序重新编译后也要重新选择一次HEX文件,否则是以前的老程序。

9. 用keil MDK上传程序

keil MDK上传的是axf文件,不是hex文件,可以免去第6步

  1. 点击魔术棒打开配置界面,选择自己的编程器
  1. 然后点setting,到flash Download勾选reset and run,这会在上传程序后让开发板自动重启运行程序,否则需要手动按复位键才能运行程序。其他的配置一般默认就好。
  1. 也许会遇到Error: Flash download failed-“Cortex-M4”的错误,记得检查这一步的设置
  1. 然后点download就可以下载了

后记

目前stm32有两个程序库,一个是标准库,一个是hal库。hal库是新开发的库,有更好的可移植性,但是很多函数和变量的命名跟标准库不一样,因此不兼容标准库写得程序。标准库官方已不再更新,hal库将是未来的趋势。

官方提供了更为方便的初始化代码的工具 STM32CubeMX,利用这个工具可以用图形化的方法配置芯片并生成初始化代码,支持mdk,EWARM多种IDE,支持stm32全系列单片机,只有hal库。

用STM32CubeMX就不需要用的keil MDK的包管理器了,就免去了第3步的器件安装和第4步的新建工程。用STM32CubeMX建立的工程会生成一个模板,在主函数的while()里的空白处写用户程序,方便很多,也规范很多。

详情见: STM32CubeMX介绍、下载与安装: http://blog.csdn.net/ybhuangfugui/article/details/52225736 STM32CubeMX使用方法及功能介绍: http://blog.csdn.net/ybhuangfugui/article/details/52264403 STM32CubeMX新建工程+基本IO配置过程: http://blog.csdn.net/ybhuangfugui/article/details/52281260 STM32CubeMX使用例程 http://www.waveshare.net/study/portal.php?mod=list&catid=40&page=2

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142838.html原文链接:https://javaforall.cn

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
stm32编程入门书籍_STM32开发板
STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)。
全栈程序员站长
2022/10/04
1.6K0
stm32编程入门书籍_STM32开发板
【STM32】软件资源及开发环境
MDK5的组成如下(核心包括4个部分:uVision IDE with Editor(编辑器),ARM C/C++ Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。Software Packs(包安装器)又分为:Device(芯片支持),CMSIS(ARM Cortex 微控制器软件接口标准)和 Mdidleware(中间库)三个小部分):
DevFrank
2024/07/24
2530
【STM32】软件资源及开发环境
NUCLEO-L432KC实现GPIO控制(STM32L432KC)
使用STM32CubeMX 新建项目工程,具体步骤可参见STM32控制LED灯闪烁(NB-IoT项目实战专栏—4),本博文将基于STM32L432KC处理器,简要讲解新建项目工程步骤。
不脱发的程序猿
2021/01/20
1.1K0
[STM32G071RB开发板使用教程] 1.使用GPIO点亮LED
这次工程使用哦内部时钟源即可,所以使用默认时钟配置即可 关于时钟配置可以看这篇:stm32时钟配置
iot-me.club
2022/02/11
1.3K0
[STM32G071RB开发板使用教程] 1.使用GPIO点亮LED
第1章_搭建开发环境
从百问网资料下载中心 (https://download.100ask.net) 下载本开发板的所有资料。进入下载中心后,在左侧标签栏找到“百问网全场景工业互联开发板”并点击,根据页面提示下载百度网盘的资料。
韦东山
2024/06/29
1980
第1章_搭建开发环境
STM32F103系列开发_点亮LED灯
STM32目前市面上使用比较广泛,资料多,接下来就介绍如何快速入门STM32,进行基础开发。
DS小龙哥
2024/05/24
4140
STM32F103系列开发_点亮LED灯
Keil MDK5 嵌入式开发环境安装教程(Windows平台)
Keil MDK5 是 ARM 公司推出的专业嵌入式开发工具链,支持 Cortex-M/R/A 系列处理器开发,集成代码编辑、编译、调试等功能。其核心组件包括:
万里顾一诚
2025/02/24
2.5K0
Keil MDK5 嵌入式开发环境安装教程(Windows平台)
【STM32】HAL库 STM32CubeMX教程三—-外部中断(HAL库GPIO讲解)
上一节我们讲解了STM32CubeMX的基本使用和工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了
全栈程序员站长
2022/06/30
2.6K0
【STM32】HAL库 STM32CubeMX教程三—-外部中断(HAL库GPIO讲解)
【STM32】STM32CubeMX教程二–基本使用(新建工程点亮LED灯)
在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯 面向初学者 如果您想着快速实现工程的创建,可以直接跳过功能介绍,观看工程创建一栏
全栈程序员站长
2022/07/01
2.3K0
【STM32】STM32CubeMX教程二–基本使用(新建工程点亮LED灯)
STM32MP157D-DK1 STM32CubeID使用与M核开发
STM32MP157具有A7内核核M4内核,前面介绍的一些文章,都是在A7内核上进行的,本篇来介绍M4内核的开发,以及开发时要用到的STM32 CubeIDE软件的使用。
xxpcb
2024/01/10
4350
STM32MP157D-DK1 STM32CubeID使用与M核开发
RT-Thread 如何移植RTT到stm32《Rice RT-Thread 学习开发》
接触RT-Thread也是一次偶然的机会,之前认识了一群网友,他们都是深圳的,然后我们这群网友本来打算去参加RTT的一个比赛,所以就约出来交流,我对RTT一脸懵逼,虽然后面我没有加入去参加比赛,但是那天听他们说完,我很兴奋,打算自己也来搞一下,移植一下这个系统,这个系统是开源的,所以你想怎么搞就怎么搞。
Rice加饭
2022/05/09
1.7K0
RT-Thread 如何移植RTT到stm32《Rice RT-Thread 学习开发》
STM32与HC-08蓝牙模块:基于HAL库的无线通信实现
HC-08是一款基于蓝牙4.0 (BLE) 标准的串口透传模块,因其成本低廉、体积小巧、使用简单而广泛应用于物联网(IoT)、无线数据采集、遥控等场景。它允许STM32等微控制器通过标准的UART接口,以无线方式与支持BLE的设备(如手机、平板)进行双向数据传输。本文将指导您如何利用STM32强大的HAL库(Hardware Abstraction Layer)高效地完成HC-08的驱动开发。
技术文章分析
2025/08/07
2990
关于IAR开发STM32配置
因为自己要学Msp430还有ZigBee发现IAR真的挺好用,,,所以以后想着就用IAR写单片机程序,, 这次配置我不会把程序的配置弄得有条理,分开文件夹存放,,,我要把那些文件全都放到一块,,弄得乱七八糟,,,因为自己一开始学习用Keil开发32的时候,,网上的视频建工程全都是建的 很有条理,,对于一开始学的自己当时就感觉特麻烦,,,对于初学者更是感觉麻烦,,反而让初学者觉得难,,,,,所以呢!嘿嘿,,,,,,,哪样简单哪样弄 不要以为我不是一个讲究的人哈,我自己建的工程都是很有条理的,,看我Keil的,
杨奉武
2018/04/18
1.7K0
关于IAR开发STM32配置
stm32编程步骤_单片机STM32
近几年来,从云计算、大数据到机器学习、AI、物联网,各种新潮的技术概念一波~~接一波。于是就产生了一些好奇心旺盛,抱着去凑一凑热闹的心态,实际上却是也想分一杯羹儿的程序员!
全栈程序员站长
2022/10/04
2.7K0
stm32编程步骤_单片机STM32
STM32Cube-23(补充) | 使用硬件I2C读取温湿度传感器数据(HTS221)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设,读取HTS221温湿度传感器的数据并通过串口发送。
Mculover666
2020/07/16
2.5K0
STM32Cube-23(补充) | 使用硬件I2C读取温湿度传感器数据(HTS221)
Mac下STM32开发环境搭建(STM32CubeMX/SW4STM32/ST-Link)
最近学习单片机,有一块实验室的老板子战舰V2,由于自己是 Mac,没有 Keil,所以研究了一下 Mac STM32 开发环境的搭建!!!!
緣來
2020/01/02
8.8K0
Mac下STM32开发环境搭建(STM32CubeMX/SW4STM32/ST-Link)
TencentOS tiny 内核移植参考指南(Keil版)
TencentOS tiny目前主要支持ARM Cortex M核芯片的移植,比如STM32 基于Cortex M核全系列、NXP 基于Cortex M核全系列等。本教程将使用STM32官方Demo开发板 NUCLEO-L073RZ进行示例移植,其他 ARM Cortex M系列开发板和芯片移植方法类似。
Supowang
2019/08/26
3.8K1
TencentOS tiny 内核移植参考指南(Keil版)
【STM32H7】第7章 RL-TCPnet V7.X网络协议栈移植(RTX5)
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=95243 第7章   RL-TCPnet网络协议栈移植(RTX5) 本章教程为大家讲
Simon223
2020/09/07
1K0
【STM32H7】第7章   RL-TCPnet V7.X网络协议栈移植(RTX5)
【STM32】STM32 CubeMx使用教程一–安装教程
1、STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。
全栈程序员站长
2022/08/11
2.2K0
【STM32】STM32 CubeMx使用教程一–安装教程
keil软件下载安装使用(STM32篇)
Keil软件是一款专为嵌入式系统开发设计的集成开发环境(IDE),由德国Keil公司创立,后被ARM公司收购并持续更新维护。它集成了代码编辑、编译、调试和项目管理等功能,广泛应用于各类单片机的程序开发,尤其是基于ARM Cortex-M内核的微控制器(如STM32系列)以及传统的8051单片机。Keil的核心组件包括μVision IDE、针对不同架构的编译器(如ARMCC用于ARM芯片,C51编译器用于8051)、调试工具和丰富的中间件库,为开发者提供了一站式的开发体验。
DS小龙哥
2025/05/29
1.8K0
keil软件下载安装使用(STM32篇)
推荐阅读
相关推荐
stm32编程入门书籍_STM32开发板
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验