开发工具使用:CubeMX、KEIL MDK-ARM
来源:成电《微机原理与嵌入式系统》漆强 第四章 STM32CubeMX软件的使用
来源:成电《微机原理与嵌入式系统》漆强 第五章 MDK-ARM软件的使用
一、STM32的CubeMX的使用
选择ACCESS TO MCU SELECTOR进入目标选择界面

芯片搜索框Part Number Search输入芯片型号
在芯片列表框双击出现的芯片型号,启动芯片配置


step1.基本配置(同设备通用)
Pinout&configuration
- System Core-RCC-HSE:选择时钟源
- System Core-SYS-Debug:配置调试接口
step2.引脚分配
Pinout View 搜索引脚(对应引脚将会闪烁)、进行可对IO引脚设置功能

step3.外设配置
Pinout&configuration

step4.时钟配置(同设备通用)
Clock configuration
- 修改时钟源频率 Input frequency:8MHz
- 选择锁相环输入时钟PLL Source Mux:HSE
- 选择系统时钟源System Clock Mux:PPLCLK
- 设置HCLK频率,并回车:一般为最大频率
step5.工程配置(同设备通用)
Project Manager
- 工程名称 Project Name:自定义
- 保存路径 Project Location:自定义
- 选择IDE Toolchain/IDE:MDK-ARM
GENERATE CODE
- 工程未打开选择 Open Project
step6.程序编写
在KeilMDK-ARM中,编写程序
在USER CODE BEGIN和END注释之间
二、KEIL MDK-ARM的使用
新建工程→选择主控芯片型号→运行环境配置(或从HAL库固件包中添加文件)→配置条件编译宏、头文件路径→选择编译器ac5、勾选微库→仿真器配置→编写用户代码→编译→下载
1.新建工程
|-DebugConfig
|-|-Target_1_主控芯片型号.dbgconf
|-Listings
|-Objects:编译构建过程中的产物→.axf、.hex(编译后的文件)
工程名.uvoptx:keil5的工程配置项(xml格式)
工程名.uvprojx:keil5的工程文件:整个工程结构(xml格式)
Select Device for Target "xxx"选择主控芯片型号
2.需要配置运行环境(使用轮子)
- Manage Run-Time Environment管理运行环境:勾选CMSIS→core、Device→startup()
- 从固件包中添加:在Project中双击分组,Add Files to Group "xxx"
3.options for target 工程设置
3.1 C/C++(使用轮子)
preprocessor symbols:添加条件编译宏
Include Paths:添加头文件路径
勾选C99 Mode:边定义边使用(而不是先集中定义后使用)

3.2 Target(使用轮子)
Code Generation
- ARM Compiler选择compiler version5(兼容性更好)、勾选use microLib(ARM公司针对硬件优化过的C标准库)

3.3 Debug (仿真器配置)
Use XXX Debugger:显示使用仿真器类型

Debug-Settings-Debug
- XXX-JTAG/SW Adapter:仿真器(仿真器连接电脑被keil识别)
- 勾选SWJ、Port为SW、MaxClock为5M、Reset为Autodetect(自动检测)
- SW Device-SWDIO:开发板芯片ARM CoreSight SW-DP(仿真器连接电脑和开发板、开发板已上电)

Debug-Settings-Flash Download
- Download Function:选择Erase Sectors擦除扇区(速度快、Erase Full Chip速度慢)、勾选reset and run(下载完程序会自动运行,不用手动复位)
- programming Algorithm:选择开发板上的主控芯片(否则出现Algorithm错误)

3.4 Utilities(仿真器配置)
勾选Use Debug driver

3.5 Output
- select Folder for Objects..:选择输出文件夹
- 勾选Create HEX File:产生.hex文件

3.6 Listing
- select Folder for Listings..:选择List文件夹

4.编译下载
- build:仅对改动文件进行编译
- rebuild:对所有文件编译
- Load(下载程序)
- 把编译好的文件下载到开发板上运行
- 下载后,Build Output 选项卡打印出 Application running…(可能需要手动复位)
5.仿真调试
单步、断点等调试手段

- debug session:调试模式
- reset cpu:程序指针复位到一开始
- run:全速执行
- step into:进入函数内部
- step over:一次执行一条语句


断点调试:代码行左边的灰色区域用于设置断点,点击一次设置断点,再次点击取消断点
观察窗口:在代码调试窗口,选中变量,鼠标右键,add 'xxx' to watch

外设查看窗口:可以查看与内核外设和片内外设相关的硬件寄存器的当前值

6.硬件连线
- 仿真器种类:J-Link、ST-Link、CMSIS-DAP、DAP-Link、ULink等
- 开发板SW口--转接板--仿真器的JTAG口、仿真器的micro-usb口--PC的usb口:keil中编译后,点击LOAD按钮,一键下载程序到开发板
- 开发板RS232口--转接线(CH340芯片)--PC的usb口:在串口调试助手中,选择串口号,设置115200 8N1,接收开发板输出的打印信息
- 开发板电源口--电源适配器
开发工具使用:CubeMX、KEIL MDK-ARM的更多相关文章
- Keil MDK 和 IAR 两款ARM开发工具区别比较
首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势.对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是 ...
- ARM 开发工具 Keil和DS-5的比较。
http://www.eeboard.com/bbs/thread-25219-1-1.html 如今ARM体系架构的处理器在嵌入式市场上呼风唤雨,从低端的MCU应用到高端的多媒体消费电子,移动设备领 ...
- 免费的EmBitz可替代Keil MDK开发STM32、NXP项目
一.背景 由于使用之前开发STM32是基于Keil MDK编译环境开发的,由于该软件是收费的,想用个免费开源的软件来替代Keil,EmBitz编译器是免费的,可以完全替代开发.下载程序支持J-Link ...
- KEIL MDK-ARM Version 5.26正式版开发工具下载
Keil MDK最新版本已经出来啦,ARM开发工具MDK-ARM Version 5.26地址:http://www.myir-tech.com/soft.asp?id=1141,需要的可以去下载哦 ...
- arm的开发工具
网上有free的ide可以开发arm cortex的芯片,可以参考List of ARM Cortex-M development tools,Wikipedia,里面有emIDE,embitz等,虽 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK工具篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Keil MDK工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash ...
- Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- Keil MDK STM32系列(三) 基于标准外设库SPL的STM32F407开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- Keil MDK STM32系列(四) 基于抽象外设库HAL的STM32F401开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
随机推荐
- WPF实现类似ChatGPT的逐字打印效果
背景 前一段时间ChatGPT类的应用十分火爆,这类应用在回答用户的问题时逐字打印输出,像极了真人打字回复消息.出于对这个效果的兴趣,决定用WPF模拟这个效果. 真实的ChatGPT逐字输出效果涉及其 ...
- 图解 LeetCode 算法汇总——回溯
本文首发公众号:小码A梦 回溯算法是一种常见的算法,常见用于解决排列组合.排列问题.搜索问题等算法,在一个搜索空间中寻找所有的可能的解.通过向分支不断尝试获取所有的解,然后找到合适的解,找完一个分支后 ...
- 文心一言 VS 讯飞星火 VS chatgpt (90)-- 算法导论8.3 3题
三.用go语言,利用归纳法来证明基数排序是正确的.在你所给出的证明中,在哪里需要假设所用的底层排序算法是稳定的? 文心一言: 基数排序是一种非比较型整数排序算法,其通过在每一位上进行比较来排序.基数排 ...
- 如何在Vue3中配置国际化语言i18n
1. 安装 vue-i18n npm i vue-i18n -S 2. 创建一个i8n的配置文件 如:i18nConfig.js // 配置 vue-i18n 实现国际化语言设置 import { c ...
- 各快 100 倍?4G、5G、6G 相差这么多吗
二狗子今天晚上有点 emo,为什么呢? 原来是二狗子心心念很久的一个手游上线了,二狗子兴冲冲地下载了 40 多分钟,终于下载完了游戏.结果打开游戏一看,发现游戏内部的更新写着预计 30 分钟完成更新. ...
- 【Python爬虫】python打印本地代理
在进行网络爬虫时,使用代理是非常重要的.因为爬虫经常会被网站封 IP,而代理可以隐藏你的真实 IP 地址,让你可以更不受限制地爬取数据.本文将介绍如何在 Python 中打印代理,包括代理 IP 的使 ...
- 基于go语言gin框架的web项目骨架
该骨架每个组件之间可单独使用,组件之间松耦合,高内聚,组件的实现基于其他三方依赖包的封装. 目前该骨架实现了大多数的组件,比如事件,中间件,日志,配置,参数验证,命令行,定时任务等功能,目前可以满足大 ...
- Vue2系列(lqz)——Vue生命期钩子、组件
文章目录 Vue声明期钩子 组件 1 fetch和axios 1.1 fetche使用 1.2 axios的使用 2 计算属性 2.1 通过计算属性实现名字首字母大写 2.2 通过计算属性重写过滤案例 ...
- Django框架项目之git笔记——版本控制器、git介绍、git使用
文章目录 版本控制器 git 简介 git与svn比较 git的工作流程 版本库间的通信 git分支管理 git使用 流程(核心总结) 安装 基础命令 将已有的文件夹 - 初始化为git仓库 在指定目 ...
- it 作形式主语:It's no good doing sth.
It's no good doing sth. 这个 句型其实是一个省 略介词 in 的句型,完整形式是 It's no good in doing sth. 其中, good 是形容词,和介词 in ...