STM32F373(青风)+CUBEMX快速上手
STM32F373(青风)+CUBEMX快速上手
Created: Nov 23, 2019 7:43 PM
Tags: CUBEMX,STM32
硬件熟悉
连接线
USB-TYPEB电源线一根,用于给板子供电,亦可以使用纽扣电池供电。
MAX232-USB 串口线一根, 用于串口通信以及程序下载。串口下载程序步骤繁琐,故不推荐,具体步骤见相关文档:
关于下载方式,推荐使用ST_LINK 或者J_LINK。
开发板
开发板电路图见下面的文档

需要注意的地方:
时钟
芯片的低速时钟引脚: OSC32_IN & OSC32_OUT 接晶振Y2 频率为32.768kHz
芯片的高速时钟引脚: OSC_IN & OSC_OUT 接晶振Y1 频率为8MHz
Debug
Wakeup 唤醒引脚为PC13 复用功能为 SYS_WAKEUP2
Debug模式为串行方式。
资料准备
数据手册;参考手册;开发板电路图。
STM32CUBEMX新建MDK工程
STM32CUBEMX下载安装
STM32CUBEMX可以直接在ST官网搜索下载,但在这之前最好注册账号并登录。网址如下:
KEIL MDK-ARM 下载安装
STM32CUBEMX使用
安装完成后打开软件,初始页面如下:

在
New Project里点击 ACCESS TO MCU SELECTOR
寻找并选择芯片型号 STM32F373RCTx ,选择并点击START Project
工程设置界面如下

可以通过左侧功能栏选择需要的外设,亦可以直接点击芯片引脚,选择复用功能。
时钟树配置
通过修改锁相环参数和预分频系数将频率设置为需要的大小。

工程管理并生成MDK工程
- 在Project Name 里命名;
- 选择工程目录
- 选择
Toolchan/IDE为MDK-ARM - 在左侧
Code Generator-Generated Files勾选 Generate peripheral initialization as a pair of '.c/.h' files per peripheral. 可以使工程目录更清晰。 - 点击左上
GENERATE CODE, 选择open project.

STM32F373上手
工程建立
- 使用STM32CUBEMX新建一个工程。
新建工程步骤前面已经叙述,下面主要叙述如何配置。
System Core-SYS-DEBUG选择 Serial Wire; 勾选 System Wake-up 2;System Core-RCCHSE&LSE 均选择 Crystal Resonator;开发板因为高速晶振和低速晶振都使用外部晶振, 高速为8MHz, 低速为32 kHz
在引脚分布图上点击 PF6 复用功能选择 GPIO_Output, 右击 PF6 点击 Enter User Label , 输入 LED1 ;

类似地,完成 PF7→ LED2 的设置。在
System Core-GPIO里设置PF6,PF7的属性为pull-up。
完成名称、目录等配置,点击GENERATE CODE, 进入keil MDK工程,在/* USER CODE BEGIN/ 和 / USER CODE END*/ 中填入自己的代码,防止重新生成工程后擦除。

编写代码如下,编译,生成HEX文件。
int main(void)
{
/* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */
SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */
HAL_Delay(500);
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
}
/* USER CODE END 3 */
}
使用串口下载器,下载。Reset, LED1 开始闪烁。

STM32F373(青风)+CUBEMX快速上手的更多相关文章
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- 快速上手seajs——简单易用Seajs
快速上手seajs——简单易用Seajs 原文 http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...
- Git版本控制Windows版快速上手
说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...
- Objective-C快速上手
最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...
- Netron开发快速上手(二):Netron序列化
Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...
- Netron开发快速上手(一):GraphControl,Shape,Connector和Connection
版权所有,引用请注明出处:<<http://www.cnblogs.com/dragon/p/5203663.html >> 本文所用示例下载FlowChart.zip 一个用 ...
随机推荐
- python语言的鸭子类型和强类型语言的多态
python语言的鸭子类型和强类型语言的多态 前面讲接口类的时候举过一个有关支付方式的例子,支付方式可以有几种,微信支付,支付宝支付,苹果支付等,这几个不同的支付都统一于支付,像这样几个类都统一于 某 ...
- 12-19 js
js是一个脚本语言 可插入到HTML网页文件中 在浏览器中执行 1 如何插入到网页中 1. 内部穿插 script 标签 type属性在网页中使用 2. 外部引入 script src属性引用js文 ...
- Spring Boot 处理异常返回json
spring boot 老版本处理异常 对于浏览器客户端,返回error数据 对于非浏览器返回json数据, 主要取决于你的请求head 是什么 但是当我们自定义了: 老版本无论请求什么都会返回j ...
- springboot 打包jar 运行找资源文件
使用如下方式读取文件:ClassPathResource cpr = new ClassPathResource("static/ok.png");byte[] bdata = F ...
- 如何修改PhpStorm快捷键
- C lang: The Command line
Ax_command line h Ax_a command line describe The command line is in enviroment for DOS,to user opera ...
- 列表list常用的方法
列表 name = ['Lisa', 'Mike', 'Jone', 'Lucy'] name.sort() # 排序,根据对应的ASCII码值,可以排各种类型的字符 name.append('Ms ...
- MySQL语句使用。
目录 MySQL的DDL.DML.DQL语句和单表增.删.改.查 实验准备: 实验开始: DDL语句 DML语句 DQL语句 单表操作的分组统计 MySQL的DDL.DML.DQL语句和单表增.删.改 ...
- CodeForces - 1265D(贪心+暴力)
题意 https://vjudge.net/problem/CodeForces-1265D a个0,b个1,c个2,d个3,问是否存在一种排列方案使得任意相邻两数之差==1 思路 分类讨论太麻烦了, ...
- Kali Linux上外网
第一部分 攻击者杀链 第一章 走进Kali Linux 镜像准备:32位kali linxu 2019(之前下载好了,按书上的版本太低了要重新配置好多东西就用最新版了) , win XP 前两章照着 ...