开发工具使用: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 ...
随机推荐
- Kafka-基础
1. 简介 Kafka(Apache Kafka) 是一种分布式流数据平台,最初由LinkedIn开发,并于后来捐赠给Apache软件基金会,成为了一个Apache顶级项目.它被设计用于处理大规模.实 ...
- 【题解】AtCoder Beginner Contest 318(D - Ex)
赛时过了 A-G,Ex 仿佛猜到了结论但是完全不懂多项式科技,就炸了. 大家好像都秒了 A,B,C 就不写了. D.General Weighted Max Matching 题目描述: 给你一个加权 ...
- 【算法】湖心岛上的数学梦--用c#实现一元多次方程的展开式
每天清晨,当第一缕阳光洒在湖面上,一个身影便会出现在湖心小岛上.她坐在一块大石头上,周围被茂盛的植物环绕,安静地沉浸在数学的世界中. 这个姑娘叫小悦,她的故事在这个美丽的湖心小岛上展开.每天早晨,她都 ...
- ubuntu22.04.3 安装postgresql 16 rc1数据库
ubuntu22.04.3 安装postgresql 16 rc1数据库 一.直接安装 # Create the file repository configuration: sudo sh -c ' ...
- numpy 索引,切片 ,转置,变值,多个数组的拼接
- 「tricks」平凡二分幻术
其实这个的标题叫 平凡线段树上二分幻术,因为这是一个民科在乱叫. 如标题所言,这个东西确实非常 trivial.碍于网络上没有一个成体系的文章供参考就只能自己来炒炒冷饭. 如果出了什么 bug 就当个 ...
- 利用python将数据写入CSV文件中
利用python将数据写入CSV文件中 全部代码如下: import csv # 1.创建文件对象 f = open('cav_file.csv', 'w', encoding='utf-8', ne ...
- C++ 转换构造函数
在 C++ 中如果一个构造函数只有一个参数,那么这个构造函数就是转换构造函数(Converting Constructor),这个构造函数可以将参数类型转换成构造函数所在的类对应的类型. 举个例子,假 ...
- 1111error
Allowed memo ry size of 268435456 bytes exhausted编辑的没有缓存都丢了
- 文心一言 VS 讯飞星火 VS chatgpt (115)-- 算法导论10.2 8题
八.用go语言,说明如何在每个元素仅使用一个指针 x.np(而不是通常的两个指针 next和prev)的下实现双向链表.假设所有指针的值都可视为 k 位的整型数,且定义x.np=x.next XOR ...