STM32 Cube MX第一次配置详解

STM32 Cube MX使用

  • 1. 准备工作
    • 1.1 软件准备
    • 1.2 下载支持包
    • 1.3 硬件准备
  • 2.项目的搭建与配置
    • 2.1 新建项目
    • 2.2 搭建项目
    • 2.3 项目设置
      • 2.3.1 系统设置
      • 2.3.2 定时器设置
      • 2.3.3 串口UART设置
      • 2.3.4 NVIC设置
      • 2.3.5 代码生成
  • 3. 代码编写
  • 4. 结果
  • 更新时间2020/10/20

1. 准备工作

1.1 软件准备

STM32 Cube MX第一次配置详解_第1张图片
https://www.st.com/zh/development-tools/stm32cubemx.html#get-software
点击获取软件后选择最新版本,同意条款协议后填写邮箱姓名或注册登录账户以完成下载,下载完成后安装,同意协议等待安装完成。

1.2 下载支持包

STM32 Cube MX第一次配置详解_第2张图片

STM32 Cube MX第一次配置详解_第3张图片

1.3 硬件准备

本次使用MCU为STM32F429ZGT6,封装为LQFP144。

2.项目的搭建与配置

2.1 新建项目

STM32 Cube MX第一次配置详解_第4张图片
STM32 Cube MX第一次配置详解_第5张图片
STM32 Cube MX第一次配置详解_第6张图片
搜索自己芯片的型号点击选择封装形式,选择完成后点击 start project。

2.2 搭建项目

STM32 Cube MX第一次配置详解_第7张图片
选择Project Manager,修改项目名称,选择修改项目存储路径,选择编写工具

STM32 Cube MX第一次配置详解_第8张图片
这里我使用的是keil5,所以选择MDK-ARM V5
修改完成后,选择Code Generator,按图示操作可将C文件和H文件分开。
STM32 Cube MX第一次配置详解_第9张图片

2.3 项目设置

2.3.1 系统设置

我使用的是SWD下载的方式,在左侧SYS中的DEBUG选项选择"Serial Wire"烧录模式(4线烧录,CLK,DIO,VCC,GND)
STM32 Cube MX第一次配置详解_第10张图片
在Pinout view中芯片引脚占用的引脚,就是烧录用到的引脚
STM32 Cube MX第一次配置详解_第11张图片
我使用是外部的25M无源晶振,所以在左侧RCC中选择外部晶振
STM32 Cube MX第一次配置详解_第12张图片
选择晶振后可以在Clock Configuration设置各总线时钟频率。平台电路上的是25M的外部晶振,则输入频率设置为25,其他的频率可以根据需求调节(就具体情况而定)。
选择HSE和PLLCLK,在HCLK处输入频率(MAX:180MHz),回车即可自动生成配置方案,最后根据需求可以调节分频设置各个总线的频率(主要看用到哪个定时器,不同的定时器用到不同的时钟源,具体根据STM32的官方芯片手册查询,这里用到TIM1,定时器1挂在总线APB2上)。
STM32 Cube MX第一次配置详解_第13张图片

2.3.2 定时器设置

在Timers中选择TIM1进行设置
1.在TIM1 Mode中的时钟源Clock Source选择Intemal Clock
2.预分频值Prescaler选择7200-1即7199(16位最大表示65535,注意不要超过)
3.自动重装载值Period设置为10000-1,即9999。
4.在NVIC Settings中使能TIM1的更新中断。
设置完成后为每秒更新一次中断。
注:定时器频率=(总时钟频率/(1+Prescaler ))/(1+Period )
STM32 Cube MX第一次配置详解_第14张图片

2.3.3 串口UART设置

我使用串口5作为打印输出,左侧选择UART5,右侧Mode选择异步通信传输Asynchronous。下面Configuration为具体参数如波特率,停止位,奇偶校检位和数据位等,可以根据需求设置(一般情况下默认即可)。
STM32 Cube MX第一次配置详解_第15张图片

2.3.4 NVIC设置

关于中断优先级可以根据需求修改
STM32 Cube MX第一次配置详解_第16张图片
STM32 Cube MX第一次配置详解_第17张图片

2.3.5 代码生成

STM32 Cube MX第一次配置详解_第18张图片
点击生成后打开项目即可。

3. 代码编写

开代码文件,选择main.c文件,要在串口打印数据,首先需要重定向Printf,在USER CODE中添加如下代码

int fputc(int ch, FILE *f)
{
    HAL_UART_Transmit(&huart5, (uint8_t *)&ch,1, 0xFFFF);
    return ch;
}

STM32 Cube MX第一次配置详解_第19张图片
添加完成后会报错,在头文件中添加stdio.h 即可

然后在main函数中打开定时器1

STM32 Cube MX第一次配置详解_第20张图片

最后编写中断函数,每秒打印一次 123456

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if (htim -> Instance == TIM1)
    {
        printf("123456\r\n");
    }
}

编译无错误后下载
STM32 Cube MX第一次配置详解_第21张图片

4. 结果

代码编写完成,完成硬件连接后烧录代码,打开串口调试助手,根据之前的设置设定调试助手的参数。如图所示,操作正确会有数据显示。
STM32 Cube MX第一次配置详解_第22张图片

更新时间2020/10/20

第一次写博客,有错误请指出,谢谢!

你可能感兴趣的:(stm32)