STM32CubeMX生成STM32L073RZT6 BootLoader程序

1. 环境:

Windows10, STM32CubeMX6.0.0,Keil5.25

单片机为STM32LRZT6 196KBytes Flash,20KBytes RAM

2. 功能要求

设计BootLoader功能,按键按下上电,进入升级程序状态,不按按键,引导应用程序执行。

3. STM32CubeMX配置并生成代码
1)打开STM32CubeMX,通过选择单片机创建工程,在Part Number中输入L073RZ搜索单片机,在单片机列表中双击STM32L073RZTx进入配置界面。

2)配置时钟输入情况,在System Core->RCC下,根据硬件实际情况配置高速时钟和低速时钟,我的板子是使用内部高速时钟,外部32.768kH晶振。

3)根据实际情况配置调试接口,在System Core->SYS下,根据调试需求配置调试接口,如果需要调试,就选择Debug Serial Wire。不需要调试可以不配置。

4)开启USB功能。在Connectivity->USB,勾选Device(FS)。

5)配置BootLoader功能。在Middleware->USB_DEVICE下,选择Download Firmware Update Class(DFU)选项,并配置USBD_DFU_APP_DEFAULT_ADD为应用程序起始地址,我的BootLoader分配32kBytes Flash,所以设置为0x08008000,USBD_DFU_MEDIA Interface 为整个Flash的分配情况,前32KBytes为BootLoader,剩余空间为应用程序所以设置为@Internal Flash   /0x08000000/02*016Ka,10*016Kg,这块的设置情况请详细参考芯片的手册。

6)配置功能切换按键的GPIO。在右侧单片机视图上找到要使用的GPIO管脚,我用的按键管脚为PC1,将鼠标放到管脚上,点击左键选择功能为GPIO-Input,点击右键给管脚创建别名,方便程序移植,我创建的别名为BOOT_MODE,根据硬件实际情况选择是否打开管脚上拉,我的硬件需要打开上拉才能正常工作。

7)配置系统时钟。在Clock Configuration页面HCLK中填入自己想要的运行频率,之后点击Enter按键,选择让软件自己寻找解决方案。(注意此步骤一定要在其他硬件都配置完成之后,特别是USB开启之后)。

8)保存工程,并生成代码。在Project Manager页面,Porject窗口中,填入Project Name、Project Location,选择Toolchain/IDE、Min Version,设置堆栈大小。此处我使用Keil 5.25,所以IDE选择MDK ARM V5.然后点击GENERATE CODE按钮生成代码。

9)修改代码。用下述代码替换生成的代码中的对应文件。

main.c

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under Ultimate Liberty license
  * SLA0044, the "License"; You may not use this file except in compliance with
  * the License. You may obtain a copy of the License at:
  *                             www.st.com/SLA0044
  *
  ******************************************************************************
  */
/* USER CODE END Header */
/* Includes -------------------------------------------------------
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值