keil MDK5搭建STM32开发环境
大家好,又见面了,我是你们的朋友全栈君。
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. 建立新工程
- 新建工程要选择在一个空文件夹,会建立很多文件。
- 之后会出现如下窗口,选择对应芯片型号
- 下一步会出现运行环境管理器窗口,这是通过选项配置需要的官方库
CMSIS -> CORE 必选 Device -> Startup 必选 如果要启用GPIO,则选择 STM32Cube HAL -> GPIO,会出现如下情况:
黄色 代表需要依赖其他库,会在下方提示需要的库,单击定位到选项 绿色 代表该库已经可用 红色 代表与其他库冲突 选择 STM32Cube HAL -> GPIO后按提示把所有需要的库都选上。
- 配置target选项(疑惑)
如果包含的头文件是#include "stm32f4xx.h"
,则需要在Define中填写USE_HAL_DRIVER(这个宏的作用是启用外设),STM32F429XX可以不填。
如果直接包含头文件#include "stm32f4xx_hal.h"
,则可以在Define中什么都不用填,就能正常使用外设。
为何会有两种方法,我还不明白。
5. 第一个程序
对Source Group1右键,添加一个c源文件,命名为main。
//这是点亮一个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步
- 点击魔术棒打开配置界面,选择自己的编程器
- 然后点setting,到flash Download勾选reset and run,这会在上传程序后让开发板自动重启运行程序,否则需要手动按复位键才能运行程序。其他的配置一般默认就好。
- 也许会遇到Error: Flash download failed-“Cortex-M4”的错误,记得检查这一步的设置
- 然后点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
相关文章
- 开发环境不会搭建怎么办?
- 02.Go语言开发环境搭建
- 微信公众号开发系统入门教程(公众号注册、开发环境搭建、access_token管理、Demo实现、natapp外网穿透)
- Linux下搭建Go开发环境(基于vscode)
- 【玩转 Cloud Studio】以 Rust 为例定制自己的开发环境
- golang环境搭建_linux开发环境的搭建
- mac下搭建PHP开发环境
- Django环境搭建和开发初体验
- Docker - docker-compose方式搭建高效的开发环境
- Python:灵活的开发环境
- vite+vue3搭建uniapp开发环境
- VS2013+WDK8.1 驱动开发环境配置
- 被遗忘的Docker Compose | 一种快速建立开发环境的好方法
- 【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | rn换行 | Runtime 执行 Cmd 命令 )
- 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★
- 【开发环境】JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 )
- 说说如何搭建微服务开发虚拟机环境?
- Android Studio配置Kotlin环境详解手机开发
- window中安装iphone开发环境详解手机开发
- Linux下搭建完善的PHP开发环境(linux搭建php环境)
- 中开发使用Qt在Linux下打造应用程序(qtlinux环境)
- 架构强大的Linux开发环境:快速实现复杂功能(搭建linux开发环境)
- 打开Sqlserver:快速搭建数据库开发环境(打开 sqlserver)
- Linux系统开发:搭建自己的环境(linux系统开发环境)
- Linux环境下Web开发的HTML文件编辑(html文件 Linux)
- PHP开发环境配置(MySQL数据库安装图文教程)
- mac下Apache+MySql+PHP搭建网站开发环境
- 推荐一款MACOSX下php集成开发环境mamp