STM32F373(青风)+CUBEMX快速上手

Created: Nov 23, 2019 7:43 PM

Tags: CUBEMX,STM32

硬件熟悉

连接线

USB-TYPEB电源线一根,用于给板子供电,亦可以使用纽扣电池供电。

MAX232-USB 串口线一根, 用于串口通信以及程序下载。串口下载程序步骤繁琐,故不推荐,具体步骤见相关文档:

工具篇:串口下载.doc

关于下载方式,推荐使用ST_LINK 或者J_LINK。

开发板

开发板电路图见下面的文档

stm32f373R64.pdf

需要注意的地方:

  • 时钟

    芯片的低速时钟引脚: OSC32_IN & OSC32_OUT 接晶振Y2 频率为32.768kHz

    芯片的高速时钟引脚: OSC_IN & OSC_OUT 接晶振Y1 频率为8MHz

  • Debug

    Wakeup 唤醒引脚为PC13 复用功能为 SYS_WAKEUP2

    Debug模式为串行方式。


资料准备

数据手册;参考手册;开发板电路图。


STM32CUBEMX新建MDK工程

STM32CUBEMX下载安装

STM32CUBEMX可以直接在ST官网搜索下载,但在这之前最好注册账号并登录。网址如下:

Home - STMicroelectronics

KEIL MDK-ARM 下载安装

STM32CUBEMX使用

  • 安装完成后打开软件,初始页面如下:

  • New Project 里点击 ACCESS TO MCU SELECTOR

    寻找并选择芯片型号 STM32F373RCTx ,选择并点击START Project

  • 工程设置界面如下

    可以通过左侧功能栏选择需要的外设,亦可以直接点击芯片引脚,选择复用功能。

  • 时钟树配置

    通过修改锁相环参数和预分频系数将频率设置为需要的大小。

  • 工程管理并生成MDK工程

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


STM32F373上手

工程建立

  • 使用STM32CUBEMX新建一个工程。

    • 新建工程步骤前面已经叙述,下面主要叙述如何配置。

      1. System Core-SYS-DEBUG 选择 Serial Wire; 勾选 System Wake-up 2;

      2. System Core-RCC HSE&LSE 均选择 Crystal Resonator;

        开发板因为高速晶振和低速晶振都使用外部晶振, 高速为8MHz, 低速为32 kHz

      3. 在引脚分布图上点击 PF6 复用功能选择 GPIO_Output, 右击 PF6 点击 Enter User Label , 输入 LED1 ;

        类似地,完成 PF7→ LED2 的设置。在 System Core- GPIO 里设置PF6,PF7的属性为pull-up。

      4. 完成名称、目录等配置,点击GENERATE CODE, 进入keil MDK工程,在/* USER CODE BEGIN/ 和 / USER CODE END*/ 中填入自己的代码,防止重新生成工程后擦除。

      5. 编写代码如下,编译,生成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 */
        }
      6. 使用串口下载器,下载。Reset, LED1 开始闪烁。

STM32F373(青风)+CUBEMX快速上手的更多相关文章

  1. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  2. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

  3. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手

    原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...

  4. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  5. 快速上手seajs——简单易用Seajs

    快速上手seajs——简单易用Seajs   原文  http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...

  6. Git版本控制Windows版快速上手

    说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...

  7. Objective-C快速上手

    最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...

  8. Netron开发快速上手(二):Netron序列化

    Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...

  9. Netron开发快速上手(一):GraphControl,Shape,Connector和Connection

    版权所有,引用请注明出处:<<http://www.cnblogs.com/dragon/p/5203663.html >> 本文所用示例下载FlowChart.zip 一个用 ...

随机推荐

  1. 带你揭秘Shiro(二)

    授权流程 1.对subject进行授权,调用方法isPermitted("permission串") 2.SecurityManager执行授权,通过ModularRealmAut ...

  2. PHP实现微信扫码自动登陆与注册,参考实例

    微信开发已经是现在phper必须要掌握的一项基本的技术了,其实做过微信开发的都知道微信接口非常的强大做起来也非常的简单,这里我们一起来看一个微信自动登陆注册的例子. php 微信扫码 pc端自动登陆注 ...

  3. C#封装继承

    面向对象开发有三大特性(特点 / 特征) : 封装, 继承, 多态.我们今天主要讨论封装和继承,多态会在下篇中讨论. 一.封装: 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法 ...

  4. C# TreeView模糊查找节点

    List<TreeNode> listSearchTreeNodes; private void btn_Search_Click(object sender, EventArgs e) ...

  5. (草稿)如何判断一名UiPath开发人员是否合格?

    一名合格的UiPath开发人员究竟需要具备什么核心技能?业务梳理?沟通技巧?VB.net吗?VBA吗?Python?还是SQL?出于多种原因,关于这一点总是众说纷纭,莫衷一是.尽管这些技术都算沾边,但 ...

  6. centos安装Redis和设置远程访问

    记录下步骤以后用到时翻一翻. 一.下载官方的文件包和编译 在centos下载依赖库: yum install gcc tcl 在redis官网的下载页面,这里可以选择离线包或在线下载. 我选择在线的, ...

  7. Less(6)

    1.先判断注入类型 (1)首先看到要求,要求传一个ID参数,并且要求是数字型的:?id=1 (2)再输入?id=1' (3)再输入?id=1 and 1=1 (4)再输入?id=1 and 1=2 ( ...

  8. swoole是多进程还是多线程

    由于PHP语言不支持多线程,因此Swoole使用多进程模式.在多进程模式下存在进程内存隔离,在工作进程内修改global全局变量和超全局变量时,在其他进程是无效的. 进程隔离 $fds 虽然是全局变量 ...

  9. Vue.js学习笔记--菜鸟搭建一个企业级vue的项目

    vue.js新手搭建一个企业项目,从0开始 前置条件: node.npm请先安装配置好 下面开始: npm 下载vue-cli脚手架工具  确认安装成功看到版本号: 初始化项目,选用webpack(p ...

  10. mac怎么连接windows远程桌面

    首先需要下载一个软件,因为苹果电脑并没有提供免费的软件给我们,所以不能像windows一样, 直接在任务管理中搜素远程桌面然后输入ip地址,用户名,密码就可以远程连接, 而苹果也有提供一个软件,但要付 ...