当前位置: 首页 > article >正文

CubeMX配置STM32L071KZT6

 明确需要配置的项

下面是工作中遇到某个项目提炼出来的的功能需求。其中MCU选用STM32L071KZT6。

名称

标识

IO功能

对应引脚

备注

蜂鸣器

BUZZER

开关量输出

PA2

指示灯

LED-R

PA15

LED-G

PA12

LED-Y

PA11

按键

KEY-1

开关量输入

PB5

外部中断

KEY-2

PB4

KEY-3

PB3

OLED显示屏

RES

/

PA4

库函数

SCK

/

PA5

SDA

/

PA6

DC

/

PA7

CS

/

PB0

数据存储

SCL

IIC

PB7

SDA

PB6

传感器1

DOUT

开关量输入

PA1

AOUT

AD输入

PA0

串口通信

USART1-RX

USART1

PA9

USART1-TX

PA10

定时器中断

TIM

定时器内部中断

PA11

100ms触发一次

时间可改

打开 STM32CubeMX 软件

双击桌面上的 STM32CubeMX 图标打开软件。如果是首次使用,可能需要一些初始化设置,如更新软件库等。

创建新项目

在主界面中,点击 “ACCESS TO MCU SELECTOR” 来选择微控制器。

选择芯片型号

在 “Commercial Part Number” 搜索框中输入 “STM32L071KZT6”,软件会筛选出对应的芯片。

选中 “STM32L071KZT6” 后,点击 “Start Project”,这样就开始基于该芯片创建工程了。

配置调试接口

在 “Pinout & Configuration” 选项卡中,找到 “SYS”(系统配置)选项。

在 “Debug” 选项中,根据你的调试工具来选择合适的调试模式。对于 STM32L071KZT6,常用的有 “Debug Serial Wire(SW)” 调试模式。这种模式只需要两根线(SWDIO 和 SWCLK),相对简单且占用引脚少。

配置时钟

在 “Pinout & Configuration” 选项卡中,首先配置时钟。

在 “RCC”(Reset and Clock Control)部分,将 “LSE(Low - Speed Clock)” 设置为 “Crystal/Ceramic Resonator”,这样就启用了外部低速晶振。

根据需要设置系统时钟源和倍频系数等参数,以达到期望的系统时钟频率。通过 PLL(Phase - Locked Loop)将外部晶振倍频到 32MHz(这是 STM32L071系列常用的时钟频率)。

 配置普通输出IO

配置IO输入中断

根据项目需求配置引脚功能,参考文章开始的表格进行配置。

配置IO 基本功能(外部上升沿触发、引脚默认上拉高电平,IO名字位自定义)

使能外部中断

配置硬件IIC输出

打开IIC

参数设置

配置串口

配置SPI

不开启中断,采用阻塞式通信

配置AD读取

配置定时器

调用下面的函数打开关闭定时器中断,

HAL_TIM_Base_Start_IT(&htim2); //使用定时器的时候调用这个函数启动
HAL_TIM_Base_Stop_IT(&htim2);  //停止定时器的时候调用这个函数关闭

定时器中断函数:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  UNUSED(htim);
    if(htim == &htim2)
    {
        HAL_GPIO_TogglePin(LED_Y_GPIO_Port,LED_Y_Pin);
    }

}

配置中断优先级

生成代码

点击 “Project” 菜单中的 “Project Manager” 选项。

在弹出的 “Generate Code” 对话框中,设置工程的基本信息。

选择 “Toolchain/IDE”,选择 “MDK - ARM”(用于 Keil),设置工程名称、保存路径等信息。

勾选“Generate peripheral initialization as a pair of'.c/.h'files per peripheral”是为了生成头文件。

点击 “GENERATE CODE” 按钮,STM32CubeMX 就会根据你的配置生成相应的工程代码。

生成完成后,你可以在指定的路径下找到工程文件,然后使用所选的集成开发环境(IDE)打开工程进行进一步的开发,如添加自己的业务逻辑代码等。


http://www.kler.cn/a/552560.html

相关文章:

  • Ubuntu 22.04完整安装Xinference及解决依赖报错
  • LLM论文笔记 11: Exploring Length Generalization in Large Language Models
  • 14. Docker 轻量级可视化工具 Portainer(的详细安装步骤+常规使用详细说明)
  • MATLAB图像处理:Sobel、Roberts、Canny等边缘检测算子
  • Ubuntu下安装cargo和uv(其实直接可以pip安装uv)
  • Django 5 实用指南(一)安装与配置
  • Qt常用控件之单选按钮QRadioButton
  • 整合Salesmart/WhatsApp、开源Odoo模块和Deepseek AI能力,实现针对国外客户的智能客服和个性化推荐服务
  • 音频采集(VUE3+JAVA)
  • 对称加密算法——IDEA加密算法
  • 【第12章:深度学习与伦理、隐私—12.2 数据隐私保护与差分隐私技术的实现与应用】
  • 前x-ai首席科学家karpathy的从零构建ChatGPT视频学习笔记--8000字长图文笔记预警(手打纯干货,通俗易懂)
  • Linux 磁盘挂载教程
  • 计算机毕业设计--基于深度学习技术(Yolov11、v8、v7、v5)算法的高效人脸检测模型设计与实现(含Github代码+Web端在线体验界面)
  • 超全Deepseek资料包,deepseek下载安装部署提示词及本地部署指南介绍
  • IO、NIO解读和不同点,以及常用的文件流操作方法
  • 在 Vue 3 中使用 Lottie 动画:实现一个加载动画
  • [数据结构]复杂度详解
  • 人工智能技术-基于长短期记忆(LSTM)网络在交通流量预测中的应用
  • 【kafka系列】broker