STM32CubeMX教程1 工程建立
1、准备材料
开发板(STM32F407G-DISC1)
ST-LINK/V2驱动
STM32CubeMX软件(Version 6.10.0)
keil µVision5 IDE(MDK-Arm)
2、实验目标
使用STM32CubeMX软件建立一个STM32F407的空工程
3、建立流程
3.1、打开STM32CubeMX软件
如下图所示为STM32CubeMX软件主界面
3.2、开始建立工程
单击ACCESS TO MCU SELECTOR
3.3、选择MCU
在弹出的MCU选择界面,搜索工程使用的MCU型号,然后选中该MCU,单击界面右上角Start Project
3.4、进行必要配置
3.4.1、Pinout & Configuration页面配置
进入Pinout & Configuration页面中,如下图所示,对于空工程来说只需在Pinout & Configuration页面中配置RCC和SYS,RCC中主要配置高速外部时钟HSE和低速外部时钟LSE,SYS中主要配置单片机的Debug模式
如果使用高速外部时钟HSE,则需要单片机PH0-OSC_IN和PH0-OSC_OUT两个引脚接入一颗4MHz~16MHz的陶瓷晶振
如果使用低速外部时钟LSE,则一般需要单片机PC14-OSC32_IN和PC15-OSC32_OUT两个引脚接入一颗32.768kHz的陶瓷晶振
如果开发板单片机的引脚PH0-OSC_IN和PH0-OSC_OUT在原理图上连接了一颗4MHz~16MHz晶体/陶瓷晶振,那么HSE就选择)Crystal/Ceramic Resonator,否则就选择Disable;同理如果PC14-OSC32_IN和PC15-OSC32_OUT两个引脚连接了一颗32.768kHz的晶体/陶瓷晶振,那么LSE也选择Crystal/Ceramic Resonator,否则一般直接选Disable即可,笔者使用的开发板HSE外部接入了一颗8MHz的陶瓷晶振,LSE未接入任何晶振,因此配置如下图所示
SYS中Debug模式表示MCU使用的下载调试模式,一般烧录程序会使用STLINK/JTAG/DAP等,按照自己的模式选择即可,笔者这里开发板板载了STLINK下载器,因此选择Serial Wire即可
3.4.2、Clock Configuration页面配置
参考下图调节即可
3.4.3、Project Manager页面配置
主要设置工程名称,存储位置,工具链/IDE
3.5、生成代码
单击页面右上角GENERATE CODE生成代码,提示生成代码成功
找到生成代码目录下MDK-ARM里的.uvprojx结尾的keil工程文件,双击打开,编译工程
生成的工程代码结构主要有①单片机的启动文件②用户核心应用文件③HAL库驱动文件④单片机系统初始化文件
用户添加代码需要在代码注释中指定的BEGIN和END之间,否则使用CubeMX重新构建工程之后,添加的代码会消失
4、烧录验证
将开发板利用调试器与电脑连接,确保调试器驱动已安装,可以通过设备管理器查看驱动,如下图所示
单击魔术手,选择对应调试器并配置
单击LOAD,烧录程序
5、小结
当创建好空工程后,以后需要使用到MCU的什么功能,就可以重新打开这个STM32CubeMX工程,然后主要是在软件Pinout & Configuration页面对功能进行配置,需要修改时钟在Clock Configuration页面配置,需要修改生成的工程及代码可以在Project Manager页面进行配置。
参考资料
更多内容请浏览 OSnotes的CSDN博客
STM32CubeMX教程1 工程建立的更多相关文章
- Eclipse中STM32工程建立步骤
前段时间一直在折腾linux系统上STM32的开发,网上一顿搜,费劲九牛二虎之力终于把环境搭好了(现在都有点忘了,后面再折腾环境搭建一定要写个教程,今天先不写了). 自从环境搭好之后,就基本抛弃MDK ...
- Davinci DM6446开发攻略——DSP开发工程建立
前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油.国外核心转基因调和油.大豆油.色拉油.大米玉米.可怕的喂药鱼.药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间 ...
- 使用STM32CubeMX生成USB_HOST_HID工程[添加对CAPS_LOCK指示灯的控制][SetReport]
在之前(使用STM32CubeMX生成USB_HOST_HID工程)的基础上进行修改 在结合之前在pc上的测试 USB之HID类Set_Report Request[调试手记1] 测试代码如下: /* ...
- 使用STM32CubeMX生成RTC工程[闹钟中断2]
在上次使用STM32CubeMX生成RTC工程[闹钟中断]基础上实现周期间隔的闹钟 一些场合需要周期性的闹钟 现在为了方便设置每十秒来一次. 备注: 当然可以直接修改HAL库static HAL_St ...
- Quartus II——工程建立和常用设置
Quartus ii是针对Altera FPGA的一款EDA软件,在此以一个led闪烁工程来简单说一下基本操作: 一.注意事项 Quartus ii最大的注意事项就一点:工程名称以及工程里面的文件名称 ...
- springcloud工程建立 父工程+公用子模块+微服务提供模块
建立 Java Working Set:工程多的时候可以展开收缩,方便管理 切换到Package Explorer视图,并点击视图右侧下箭头,选择Working Sets,如下图: 建立父工程,将后续 ...
- STM32工程建立
STM32工程建立 对于用keil5建立stm32工程有两种方法,一种在学习过程中比较方便的建立方式:我们称为工程方式一,另一个便是在实际工程中用的最多,也最普遍,在实际过程中用的最多的,我们称为工程 ...
- QuartusII13.0使用教程详解(一个完整的工程建立)
好久都没有发布自己的博客了,因为最近学校有比赛,从参加到现在都是一脸懵逼,幸亏有bingo大神的教程,让我慢慢走上了VIP之旅,bingo大神的无私奉献精神值得我们每一个业界人士学习,向bingo致敬 ...
- STM32F072从零配置工程-建立工程文件
快速建立工程有两种方法: 第一种是通过官方提供的外设库来搭建,好处是使用库函数,而不需要深入研究寄存器配置: 第二种是通过STM32CubeMX,好处是直观快速,可以直接帮你配置好功能和时钟,不过使用 ...
- 工程建立多个source folder
在工程中,想在建立多个source filder,总是报错,报错信息是 Cannot nest 'GzEdu/src/c' inside 'GzEdu/src'. To enable the nest ...
随机推荐
- 基于 Wiki.js 搭建知识库系统
前言 本文介绍如何使用 Wiki.js 搭建知识库系统. Wiki.js 官网 安装 前提准备 Wiki.js 几乎可以在任何支持 Node.js 的系统上运行.它可以运行在 Linux .Windo ...
- Vue路由新开页面跳转和传参传递
需求:在后台管理系统首页列表项中,点击详情跳转到系统中指定菜单的路由要求新开窗口并需要带上参数查询. 第一种方法: 1 const { id } = item; 2 let routeUrl = th ...
- oracle优化-分页查询的错误认识
对于分页查询,上一篇文章总结了实现分页查询的办法.同时给出等价写法,另外在执行计划角度验证SQL的等价性https://www.cnblogs.com/handhead/p/13856505.html ...
- Go语言系列——Go语言介绍
文章目录 01-Go语言介绍 一 Go语言介绍 二 Go语言特性 三 Go语言发展(版本/特性) 四 Go语言应用 谁在用 Google Facebook 腾讯 百度 京东 小米 360 应用领域 五 ...
- 前端框架——Vue3
文章目录 Vue3快速上手 1.Vue3简介 2.Vue3带来了什么 1.性能的提升 2.源码的升级 3.拥抱TypeScript 4.新的特性 一.创建Vue3.0工程 1.使用 vue-cli 创 ...
- Python网络编程——基于tcp协议实现远程执行命令、udp协议没有粘包问题、解决粘包问题、socketserver模块的基本使用(基于tcp协议、基于udp协议的使用)
文章目录 基于tcp协议实现远程执行命令 udp协议没有粘包问题 解决粘包问题 解决粘包问题(终极版) socketserver模块的基本使用 基于tcp协议的使用 基于udp协议的使用 基于tcp协 ...
- C++的模板类在HotSpot VM中的应用
模板是c++的一种特性,允许函数或者类通过泛型(generic types)的形式表现或者运行.模板可以使得函数或类在对应不同的类型(types)的时候正常工作,而无需为每一种类型分别写一份代码. 在 ...
- ContextWrapper
/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Versi ...
- Vue项目打包为桌面应用
vue项目首先使用 npm run build 打包为dist文件后,进入dist目录得到如下文件:就是打包后的html+css+js+static 新建一个deskapp文件夹,里面在新建一个App ...
- 14. 从零开始编写一个wmproxy(代理,内网穿透等), HTTP文件服务器的实现过程及参数
用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP中的压缩gzip,deflate,brotli算法 项目 ++wmproxy++ gite: https://gitee.com/ ...