开发工具使用: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 ...
随机推荐
- 联通光猫获取超级管理员密码,联通宽带逻辑ID 获取
首先使用普通账户登录然后访问这个链接 http://192.168.1.1/backpresettings.conf 保存backpresettings.conf 打开文件就可以看到 cuadmin ...
- 通过实战操作学git
虽然说 "好记性不如烂笔头",但是学习不看等于没学,学习不用等于不会,所以说"实战才是检验真理的唯一标准",通过实战则会学到很多东西. 因为陈** 太懒,并且不 ...
- 微信小程序上传文件操作示范
社会实践心得体会格式要求 提交的心得体会应为word文档,且图文并茂,全文段前.段后0,1.5倍行距. 题目:自拟,方正小标宋简体,小二号,加粗,居中. 个人信息:题目下方,宋体,小四号,加粗,居中, ...
- Ceph-部署
Ceph规划 主机名 IP地址 角色 配置 ceph_controler 192.168.87.202 控制节点.MGR Centos7系统500G硬盘 ceph_node1 192.168.87.2 ...
- java类序列化和反序列化
参考:https://zhuanlan.zhihu.com/p/144535172?utm_id=0 https://blog.csdn.net/qq_42617455/article/details ...
- vue3.3.x setup 新实验性特性 defineModel 定义多个属性
由于有些业务组件需要定义多个响应式props,类似这种(比较懒,没上ts),在vue3.3.x以前,如果不用三方库,代码会变得很繁琐 <script setup> const props ...
- MFC中使用函数实现ini文件的连续读写
实现的思路: 首先通过读取文件中的count值,确定当前信息条数: 第二步:将count进行累加,把信息写到累加后的键值"="的后面: 第三步:写入count累加值,实现连续读写: ...
- selenium库浅析
selenium库浅析 基于4.3 pip install selenium安装好后,在sitepackages下 2个主要的目录,common和webdriver 1- common 该目录一共就一 ...
- oracle:ORA-14765建索引阻塞创建分区及处理步骤
在生产库建立一个索引,报ORA-14765创建索引时不能创建分区,也就是索引的创建阻塞分区的建立. 处理步骤: 1.与开发人员沟通昨天下午在Tbl_Waste表上建索引,一直未返回成功,定位问题SQL ...
- 5. 用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备
用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备 项目 ++wmproxy++ gite: https://gitee.com/tickbh/wmproxy github ...