来源:成电《微机原理与嵌入式系统》漆强 第四章 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的更多相关文章

  1. Keil MDK 和 IAR 两款ARM开发工具区别比较

    首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势.对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是 ...

  2. ARM 开发工具 Keil和DS-5的比较。

    http://www.eeboard.com/bbs/thread-25219-1-1.html 如今ARM体系架构的处理器在嵌入式市场上呼风唤雨,从低端的MCU应用到高端的多媒体消费电子,移动设备领 ...

  3. 免费的EmBitz可替代Keil MDK开发STM32、NXP项目

    一.背景 由于使用之前开发STM32是基于Keil MDK编译环境开发的,由于该软件是收费的,想用个免费开源的软件来替代Keil,EmBitz编译器是免费的,可以完全替代开发.下载程序支持J-Link ...

  4. KEIL MDK-ARM Version 5.26正式版开发工具下载

    Keil MDK最新版本已经出来啦,ARM开发工具MDK-ARM Version 5.26地址:http://www.myir-tech.com/soft.asp?id=1141,需要的可以去下载哦 ...

  5. arm的开发工具

    网上有free的ide可以开发arm cortex的芯片,可以参考List of ARM Cortex-M development tools,Wikipedia,里面有emIDE,embitz等,虽 ...

  6. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK工具篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Keil MDK工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash ...

  7. Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  8. Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401开发

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  9. Keil MDK STM32系列(三) 基于标准外设库SPL的STM32F407开发

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  10. Keil MDK STM32系列(四) 基于抽象外设库HAL的STM32F401开发

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

随机推荐

  1. U盘目录穿越获取车机SHELL - 分析与复现

    github上破解日系车机的文章 - https://github.com/ea/bosch_headunit_root 其中有利用 U 盘获取车机 shell 的操作 主要根据下面这篇文章进行环境搭 ...

  2. 4、Spring之依赖注入

    依赖注入就是对类的属性进行赋值 4.1.环境搭建 创建名为spring_ioc_xml的新module,过程参考3.1节 4.1.1.创建spring配置文件 <?xml version=&qu ...

  3. 质量管理 | QC、QA、QM,去QA化与降本增效

    现在国内职业的质量管理都是从 CMMI 和 ISO 质量体系演化过来的,但是能做真正的质量管理的公司很少.质量管理的 QC 偏测试,对最终的产品负责:QA 偏过程,从过程把控质量:QM 偏体系,类似于 ...

  4. 《SQLi-Labs》01. Less 1~5

    @ 目录 前言 索引 Less-1 题解 原理 Less-2 题解 Less-3 题解 Less-4 题解 Less-5 题解 原理 sqli.开启新坑. 前言 对于新手,为了更加直观的看到 sql ...

  5. 高德Android高性能高稳定性代码覆盖率技术实践

    ​前言 代码覆盖率(Code coverage)是软件测试中的一种度量方式,用于反映代码被测试的比例和程度. 在软件迭代过程中,除了应该关注测试过程中的代码覆盖率,用户使用过程中的代码覆盖率也是一个非 ...

  6. 一文了解Validator库

    1. 引言 github.com/go-playground/validator 是一个 Go 语言的库,用于对结构体字段进行验证.它提供了一种简单而灵活的方式来定义验证规则,并在验证过程中检查结构体 ...

  7. 蚂蚁集团混沌工程 ChaosMeta V0.5 版本发布

    混沌工程 ChaosMeta 的全新版本 V0.5 现已正式发布!该版本包含了许多新特性和增强功能,为用户提供了支撑混沌工程各个阶段的平台能力,以及降低使用门槛的用户界面. ChaosMeta V0. ...

  8. mysql8关闭binlog并清空Binlog

    编辑my.ini或者my.cnf文件 清空binlog信息 #查看现存的binlog文件列表 show master logs; #重置清空binlog文件 reset master; #重置清空后 ...

  9. IOS 16 无法打开开发版或者企业版本APP解决方案 - 需要开启开发者模式

    在IOS 16系统上,打开开发版本APP,或者企业版本APP时,会看到如下的提示信息: 需要开启开发者模式, xxx 需要在开发者模式下运行. 启用开发者模式前, 此App不可用 这个时由于IOS 1 ...

  10. Mybatis中的设计模式

    最近在看<通用源码阅读指导书:Mybatis源码详解>,这本书一一介绍了Mybatis中的各个包的功能,同时也涉及讲了一些阅读源码的技巧,还讲了一些源码中涉及的设计模式,这是本篇文章介绍的 ...