来源:成电《微机原理与嵌入式系统》漆强 第四章 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. 联通光猫获取超级管理员密码,联通宽带逻辑ID 获取

    首先使用普通账户登录然后访问这个链接 http://192.168.1.1/backpresettings.conf 保存backpresettings.conf 打开文件就可以看到 cuadmin ...

  2. 通过实战操作学git

    虽然说 "好记性不如烂笔头",但是学习不看等于没学,学习不用等于不会,所以说"实战才是检验真理的唯一标准",通过实战则会学到很多东西. 因为陈** 太懒,并且不 ...

  3. 微信小程序上传文件操作示范

    社会实践心得体会格式要求 提交的心得体会应为word文档,且图文并茂,全文段前.段后0,1.5倍行距. 题目:自拟,方正小标宋简体,小二号,加粗,居中. 个人信息:题目下方,宋体,小四号,加粗,居中, ...

  4. Ceph-部署

    Ceph规划 主机名 IP地址 角色 配置 ceph_controler 192.168.87.202 控制节点.MGR Centos7系统500G硬盘 ceph_node1 192.168.87.2 ...

  5. java类序列化和反序列化

    参考:https://zhuanlan.zhihu.com/p/144535172?utm_id=0 https://blog.csdn.net/qq_42617455/article/details ...

  6. vue3.3.x setup 新实验性特性 defineModel 定义多个属性

    由于有些业务组件需要定义多个响应式props,类似这种(比较懒,没上ts),在vue3.3.x以前,如果不用三方库,代码会变得很繁琐 <script setup> const props ...

  7. MFC中使用函数实现ini文件的连续读写

    实现的思路: 首先通过读取文件中的count值,确定当前信息条数: 第二步:将count进行累加,把信息写到累加后的键值"="的后面: 第三步:写入count累加值,实现连续读写: ...

  8. selenium库浅析

    selenium库浅析 基于4.3 pip install selenium安装好后,在sitepackages下 2个主要的目录,common和webdriver 1- common 该目录一共就一 ...

  9. oracle:ORA-14765建索引阻塞创建分区及处理步骤

    在生产库建立一个索引,报ORA-14765创建索引时不能创建分区,也就是索引的创建阻塞分区的建立. 处理步骤: 1.与开发人员沟通昨天下午在Tbl_Waste表上建索引,一直未返回成功,定位问题SQL ...

  10. 5. 用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备

    用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备 项目 ++wmproxy++ gite: https://gitee.com/tickbh/wmproxy github ...