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 一个用 ...
随机推荐
- 两种最常用的 HTTP 操作方法是:GET 和 POST。
什么是 HTTP? 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信. HTTP 的工作方式是客户机与服务器之间的请求-应答协议. web 浏览器可能是客户端,而计算机上的网络应用程 ...
- React中refs持久化
根据使用React的版本,选择合适的方法. 字符串模式 :废弃不建议使用 回调函数,React版本 < 16.3 React.createRef() :React版本 >= 16.3 回调 ...
- java8-Optional的引入
背景 NPE问题,100%的Java程序员都碰到,并且曾经是心中的痛. 1965年英国TonyHoare引入了Null引用,后续的设计语言包括Java都保持了这种设计. 一个例子 业务模型 Perso ...
- Unicode、UTF-8、Big Endian、Little Endian、GBK、UCS-2
一.Unicode.UCS.GBK 1.开始计算机只在美国用.八位的字节一共可以组合出256(2的8次方)种不同的状态.把这些0×20以下的字节状态称为”控制码”.他们又把所有的空 格.标点符号.数字 ...
- js 实现ReplaceAll 的方法
JS 字符串有replace() 方法.但这个方法只会对匹配到的第一个字串替换. 如下例: <HTML> <HEAD> <TITLE> New Document ...
- Vultr主机绑定域名
1.在腾讯云上注册域名 然后,域名实名认证 2.Vultr主机购买(看我之前写的:手把手教你如何自己搭梯子) 然后会获取到一个服务器IP地址 3.绑定域名与IP 点解,解析后会弹出让你输入IP地址,此 ...
- How to: Calculate a Property Value Based on Values from a Detail Collection 如何:基于详细信息集合中的值计算属性值
This topic describes how to implement a business class, so that one of its properties is calculated ...
- MySQL索引查询原理
什么是索引? “索引”是为了能够更快地查询数据.比如一本书的目录,就是这本书的内容的索引,读者可以通过在目录中快速查找自己想要的内容,然后根据页码去找到具体的章节. 数据库也是一样,如果查询语句使用到 ...
- 欢迎大家Follow me!微软MVP罗勇(Dynamics CRM方向2015-2018年)欢迎您!
我是一名八零后,来自湖南乡村,2006年毕业于大连大学工商管理专业,主要靠自学走上了编程之路.从2012年开始接触Dynamics CRM 2011,一直从事Dynamics CRM方面工作,熟悉Dy ...
- Django 执行 makemigrations 显示 No changes detected in app
在Django项目配置一下多数据库,但是运行 makemigrations 执行不正常 $ python manage.py makemigrations polls No changes detec ...