开发工具使用: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 ...
随机推荐
- Combobox后台绑定
本文主要介绍WPF中Combobox的后台绑定,我在这里主要讲解数据驱动 1.对于前台绑定,我们首先写出想要绑定的对象 新建一个Models文件夹,将Student类写入 public class S ...
- [ABC146F] Sugoroku
2023-02-27 题目 题目传送门 翻译 翻译 难度&重要性(1~10):5 题目来源 AtCoder 题目算法 贪心 解题思路 对于第 ii 个点,只要到达 \(s_{i+1}\cdot ...
- Jmeter+Ant+Jenkins接口自动化框架(续)
前段时间给公司内部项目搭建了一套接口自动化框架,基于实际使用,需要配置自动发送邮件功能,将 执行结果发送给相关负责人.Jenkins本身也提供了一个邮件通知功能,但在提供详细的邮件内容.自定义邮 件格 ...
- 《CTFshow-Web入门》03. Web 21~30
@ 目录 web21 题解 原理 web22 题解 原理 web23 题解 原理 web24 题解 原理 web25 题解 原理 web26 题解 web27 题解 web28 题解 web29 题解 ...
- 要调用API接口获取商品数据,首先需要了解该API的文档和规范
要调用API接口获取商品数据,首先需要了解该API的文档和规范.大多数API都需要使用API密钥进行身份验证,因此您需要先注册API提供商,并从他们那里获取API密钥.以下是一些通用的步骤: 1. ...
- GORM自定义Gorm.Model实现自动添加时间戳
废话不说直接开始 官网(http://gorm.io)有给出一套默认的gorm.Model模型,定义如下 package gorm import "time" // Model b ...
- Solution -「CCPC Winter Camp Day 6 A」Convolution
Description Link. 给定一个数列 \(\sf a_1,a_2,....a_n\),请求出下面这个结果在模 \(\sf 998244353\) 下的答案. \[\sum_{i=1}^{n ...
- proto转java类时相关option配置
转载请注明出处: option java_multiple_files = true; 作用和意义:此选项指示生成的 Java 代码将被分割成多个文件而不是一个文件.每个消息类型都会生成一个单独的 J ...
- 探索抽象同步队列 AQS
by emanjusaka from https://www.emanjusaka.top/archives/8 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下原文地址. 前言 AbstractQ ...
- 第六单元《管理学进展》单元测试 mooc
第六单元<管理学进展>单元测试 返回 本次得分为:10.00/10.00, 本次测试的提交时间为:2020-08-30, 如果你认为本次测试成绩不理想,你可以选择 再做一次 . 1 判断( ...