来源:成电《微机原理与嵌入式系统》漆强 第四章 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. c# 如何将程序加密隐藏?

    下面将介绍如何通过LiteDB将自己的程序进行加密,首先介绍一下LiteDB. LiteDB LiteDB是一个轻量级的嵌入式数据库,它是用C#编写的,适用于.NET平台.它的设计目标是提供一个简单易 ...

  2. 新一代Kerberos攻击 钻石票据与蓝宝石票据

    新一代Kerberos攻击 | 钻石票据与蓝宝石票据 0x01 前言 在了解票据攻击的过程中,看见了一篇文章使用Rubeus进行钻石票据攻击.但是没有原理,于是抱着学习的心态在Google上寻找文章发 ...

  3. SpringBoot3集成RocketMq

    标签:RocketMq5.Dashboard: 一.简介 RocketMQ因其架构简单.业务功能丰富.具备极强可扩展性等特点被广泛应用,比如金融业务.互联网.大数据.物联网等领域的业务场景: 二.环境 ...

  4. 强化学习 Proximal Policy Optimization (PPO)

    参考: 李宏毅老师课件 PPO = Policy Gradient 从 On-policy 到 Off-policy, 再加一些constraint Policy Gradient Basic Con ...

  5. 记一次weak_up函数绕过

    2023 蓝帽杯CTF LovePHP 因为比赛已经结束,所以复现环境是从本地进行复现,这次比赛本来排名挺靠前的,原本总排名是60多名,赛区排名30多名,本来是以为有希望进入半决赛的,但是没想到比赛结 ...

  6. 算法笔记_python

    目录 算法 概念 时间复杂度 空间复杂度 递归原理 顺序查找 二分查找 列表排序 LowB 三人组 冒泡排序 选择排序 插入排序 NB三人组 快速排序 堆排序 归并排序 NB三人组小结 总结 其他排序 ...

  7. 使用 Sealos 在离线环境中光速安装 K8s 集群

    作者:尹珉.Sealos 开源社区 Ambassador,云原生爱好者. 当容器化交付遇上离线环境 在当今快节奏的软件交付环境中,容器化交付已经成为许多企业选择的首选技术手段.在可以访问公网的环境下, ...

  8. 浅谈Mysql读写分离的坑以及应对的方案

    一.主从架构 为什么我们要进行读写分离?个人觉得还是业务发展到一定的规模,驱动技术架构的改革,读写分离可以减轻单台服务器的压力,将读请求和写请求分流到不同的服务器,分摊单台服务的负载,提高可用性,提高 ...

  9. 杰哥教你面试之一百问系列:java中高级多线程concurrent的使用

    目录 问题1:什么是ConcurrentHashMap?它与HashMap的区别是什么? 问题2:什么是CopyOnWriteArrayList?它适用于什么样的场景? 问题3:什么是Blocking ...

  10. Dami 基于事件总线的本地过程调用框架(首次发版)

    Dami,专为本地多模块之间通讯解耦而设计(尤其是未知模块.隔离模块.领域模块).零依赖,特适合 DDD. 特点 结合 Bus 与 RPC 的概念,可作事件分发,可作接口调用,可作异步响应. 支持事务 ...