来源:成电《微机原理与嵌入式系统》漆强 第四章 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. Unity的AssetPostprocessor之Model之动画:深入解析与实用案例 3

    Unity AssetPostprocessor的Model的动画相关的函数修改实际应用 在Unity中,AssetPostprocessor是一个非常有用的工具,它可以在导入资源时自动执行一些操作. ...

  2. 基于Supabase开发公众号接口

    在<开源BaaS平台Supabase介绍>一文中我们对什么是BaaS以及一个优秀的BaaS平台--Supabase做了一些介绍.在这之后,出于探究的目的,我利用一些空闲时间基于Micros ...

  3. 前后端分离中台框架 Admin.Core 学习-介绍与配置说明

    中台框架后端项目 Admin.Core 的介绍与配置说明 中台admin是前后端分离权限管理系统,Admin.Core为后端项目,基于.NET 7.0开发. 支持多租户.数据权限.动态 Api.任务调 ...

  4. 干货分享:用ChatGPT调教批量出Midjourney咒语,出图效率Nice ,附资料。

    Prompts就是AI绘图的核心竞争力. 您是不是觉得用Midjourney生成的图不够完美? 又让ChatGPT去生成Prompt,然后效果还不理想? 其实ChatGPT你给他投喂资料后,经过调教的 ...

  5. 学习JavaScript的路径

    学习JavaScript的路径可以按照以下步骤进行: 了解基本概念:首先学习JavaScript的基本概念,包括变量.数据类型.运算符.数组.对象.循环和条件语句等.可以通过阅读相关的教材.在线课程或 ...

  6. 好好回答下 TCP 和 UDP 的区别!

    写了这么多篇关于 TCP 和 UDP 的文章,还没有好好聊过这两个协议的区别,这篇文章我们就来开诚布公的谈一谈. 关于 TCP 和 UDP ,想必大家都看过一张这样的图. 有一个小姑娘在对着瓶口慢慢的 ...

  7. Java实践项目 - 商品分类

    Smiling & Weeping ---- 好想回到那个拉钩许诺的年代 1.1商品分类的思路:一次性查询三级分类 (一级为美味麒麟榜,二级为闭眼入,第三级为商品) 优点:只需要一次查询,根据 ...

  8. C++ 学习笔记、01 | 开发简单职工管理系统遇到的一些问题

    记录开发简单职工管理系统遇到的一些问题,黑马教程 https://www.bilibili.com/video/BV1et411b73Z P147 ~ P166 头文件与源文件 头文件只声明,源文件来 ...

  9. jenkins更换国内插件源

    sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' ...

  10. client-go实战之六:时隔两年,刷新版本继续实战

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 时隔两年,<client-go实战>被激活 ...