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)打开工程进行进一步的开发,如添加自己的业务逻辑代码等。
相关文章:
CubeMX配置STM32L071KZT6
明确需要配置的项 下面是工作中遇到某个项目提炼出来的的功能需求。其中MCU选用STM32L071KZT6。 名称 标识 IO功能 对应引脚 备注 蜂鸣器 BUZZER 开关量输出 PA2 指示灯 LED-R PA15 LED-G PA12 LED-Y PA11 按键 KEY-1 开关量输入 PB5 外…...
RadASM环境,win32汇编入门教程之二
;win32汇编环境,RadAsm入门教程之二 ;前面我们已经学了教程一,生成了第一个软件。那么让我们继续我们的学习旅程。本教程讲解一下基本窗口模版的原理。让我们打开RadASM后,双击右侧的ABC.Asm文件,一点点研究。 ;首先,我…...
mysql开启gtid并配置主从
默认主从都开启了bin log. 1.主从都在/etc/my.cnf中加入并重启服务 gtid_mode ON enforce_gtid_consistency ON 2.在主库创建用户并授权 create user slave identified with mysql_native_password by 123456 mysql>GRANT REPLICATION SLAVE ON *.* to slave% identified…...
RAG科普文!检索增强生成的技术全景解析
RAG 相关技术的八个主题:https://pub.towardsai.net/a-taxonomy-of-retrieval-augmented-generation-a39eb2c4e2ab 增强生成 (RAG) 是塑造应用生成式 AI 格局的关键技术。Lewis 等人在其开创性论文中提出了一个新概念面向知识密集型 NLP 任务的检索增强生成之后&…...
【Sceneform-EQR】实现3D场景背景颜色的定制化(背景融合的方式、Filament材质定制)
写在前面的话 Sceneform-EQR是基于(filament)扩展的一个用于安卓端的渲染引擎。故本文内容对Sceneform-EQR与Filament都适用。 需求场景 在使用Filament加载三维场景的过程中,一个3D场景对应加载一个背景纹理。而这样的话,即便…...
python自动化测试之统一请求封装及通过文件实现接口关联
一、接口文档怎么看? http://www.aaa.com/api.php?sindex/index&applicationapp&application_client_typeweixi n&tokentokenvalue&ajaxajax 参数解释: http 协议 www.aaa.com IP和端口 api.php 接口的地址 sindex/index 接口名称以 …...
Redis笔记
文章目录 Redis笔记通用命令get和setkeysexistsdelexpirettlRedis的key过期策略定时器的实现原理type 持久化RDB(Redis DataBase)---定期备份bgsave AOF(Append Only File)---实时备份 Redis笔记 Redis是一个“客户端-服务器”结构的程序,客户端和服务器之间通过网…...
repo学习使用
Repo 是以 Git 为基础构建的代码库管理工具。Repo 可以在必要时整合多个 Git 代码库,将相关内容上传到版本控制系统。借助单个 Repo 命令,可以将文件从多个代码库下载到本地工作目录。 Repo 命令是一段可执行的 Python 脚本,你可以将其放在路…...
windows 通过docker 安装mysql
参考:Docker安装并使用Mysql(可用详细)_docker 安装mysql-CSDN博客 1. 拉取镜像:docker pull mysql:5.7 2. 查看镜像:docker image 3. 创建mysql 容器实例,并将data 目录挂载到本地d盘上 docker run --n…...
高效利用Python爬虫开发批量获取商品信息
在当今电商行业竞争激烈的环境下,精准且高效地获取商品信息对于商家和数据分析师来说至关重要。无论是进行市场调研、优化商品布局,还是制定竞争策略,商品信息的全面掌握都是关键。Python爬虫技术以其强大的功能和灵活性,成为批量…...
【C语言】左旋字符串(三种实现方式)
题目: 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 方法一: 我们画个图分析一下: 基本逻辑: 就是我们每一次旋转之前,我们就取出…...
Spring Security,servlet filter,和白名单之间的关系
首先,Servlet Filter是Java Web应用中的基础组件,用于拦截请求和响应,进行预处理和后处理。它们在处理HTTP请求时处于最外层,可以执行日志记录、身份验证、授权等操作。白名单机制通常指允许特定IP、用户或请求通过的安全策略&…...
Python 调用 Azure OpenAI API
在人工智能和机器学习快速发展的今天,Azure OpenAI 服务为开发者提供了强大的工具来集成先进的 AI 能力到他们的应用中。本文将指导您如何使用 Python 调用 Azure OpenAI API,特别是使用 GPT-4 模型进行对话生成。 准备工作 在开始之前,请确保您已经: 拥有一个 Azure 账户…...
Git标签管理:从基础到高阶自动化实践
引言 在软件发布过程中,88%的生产事故与版本标记错误相关。Git标签(Tag)作为版本控制的关键锚点,不仅是发布流程的里程碑,更是代码审计和问题追溯的重要依据。本文将深入Git标签的底层机制,揭示企业级标签…...
运行Petalinux的准备
参考文档 建议使用Xilinx官方的文档中心DocNav,在Design Hub View选项卡中可以看到Xilinx官方组织的开发流程,非常详尽且总是最新的。 《UG1144-petalinux-tools-reference-guide》 安装linux系统 1.查看Petalinux版本支持的系统版本,对于官方未提及或…...
Jenkins 通过 Execute Shell 执行 shell 脚本 七
Jenkins 通过 Execute Shell 执行 shell 脚本 七 一、创建 .sh 文件 项目目录下新建 .sh 文件 jenkins-script\shell\ci_android_master.sh添加 Execute Shell 模块 在 Command 中添加 # 获取 .sh 路径 CI_ANDROID_MASTER_PATH"${WORKSPACE}/jenkins-script/shell/…...
AT32系列微控制器低压电机控制开发板
参考:《UM0014_AT32_LV_Motor_Control_EVB_V20_User_Manual_V1.0.1_ZH.pdf》 开发板介绍 此电机开发板是一个泛用型的低压三相电机驱动器,应用雅特力科技AT32系列微控制器搭配雅特力电机函数库,可驱动直流无刷电机、交流同步电机࿰…...
k8s部署redis集群
前置环境:已部署k8s集群,ip地址为 192.168.10.1~192.168.10.5,总共5台机器。 1. 创建provisioner制备器(如果已存在,则不需要) 需要部署方式,可以参考我之前的文章:k8s部署rabbitmq-CSDN博客 2. 新增redis配置文件 redis-6001.yaml --- apiVersion: v1 kind: Serv…...
道路运输安全员考试题库及答案
一、判断题 32.驾驶员必须取得道路危险货物运输从业资格证,才能从事道路危险货物运输活动。 答案:正确 33.可以将危险货物与普通货物混装运输。 答案:错误 34.货车正常行驶时,转向轮转向后应有一定的回正能力,以使货…...
反射概率以及一些基本API的使用
请问,获取对象有几种方式? 1、通过构造函数来new一个对象; 2、通过clone来克隆一个对象; 3、通过序列化反序列化来构建一个对象; 4、通过反射来创建对象;a、通过Class类来创建;b、通过Const…...
DeepSeek API 调用 - Spring Boot 实现
DeepSeek API 调用 - Spring Boot 实现 1. 项目依赖 在 pom.xml 中添加以下依赖: <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></depe…...
机器学习 - 理论和定理
在机器学习中,有一些非常有名的理论或定理,对理解机器学习的内在特性非常有帮助。本文列出机器学习中常用的理论和定理,并举出对应的举例子加以深化理解,有些理论比较抽象,我们可以先记录下来,慢慢啃&#…...
Java进阶:Docker
1. Docker概述 1.1. Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱…...
Winform禁止高分辨下缩放布局成功方法
Windows自动缩放布局会导致窗体上的按钮和文本挤在一起根本看不清楚。 那么该如何解决呢? 具体操作步骤如下: 1、在项目属性上切换到【安全性】菜单,勾选【启用ClickOnce安全设置】,然后立刻取消勾选; 为了生成app.…...
力扣142题——环形链表II
#题目# #代码# #链接# 这道链表题还是需要一些思维,这里把代码随想录的链接也贴在这里,有需要的小伙伴自行点击: https://programmercarl.com/0142.%E7%8E%AF%E5%BD%A2%E9%93%BE%E8%A1%A8II.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%…...
工厂设计模式
工厂设计模式 简介 工厂模式是一种创建型设计模式,用于创建产品,代替手动new,主要包括简单工厂模式、工厂方法模式、抽象工厂模式。 一、简单工厂模式 定义:通过一个工厂类根据传入的参数匹配创建的产品 结构组成:…...
网络安全之探险
因为工作相关性,看着第三方公司出具的网络安全和shentou测试报告就想更深入研究一下,于是乎开始探索网络安全方面的知识,度娘、知乎开始一步步开始,总结昨天学到皮毛知识。 1.考证大全,开始是奔着这个目的去的 2.有用…...
Python基础语法精要
文章目录 一、Python的起源二、Python的用途三、Python的优缺点优点缺点 四、基础语法(1)常量和表达式(2)变量变量的语法(i)定义变量(ii)变量命名的规则 (3)变…...
C语言(枚举类型)
目录 1、什么是枚举 2、枚举成员的类型 3、枚举类型的实际应用 1、什么是枚举 枚举的定义就是:枚举(Enumeration)是一种用户自定义的数据类型,用于定义一组具有离散值的符号常量。 那通俗一点说就是把一些固定的值,一…...
讯方·智汇云校华为授权培训机构的介绍
官方授权 华为授权培训服务伙伴(Huawei Authorized Learning Partner,简称HALP)是获得华为授权,面向公众(主要为华为企业业务的伙伴/客户)提供与华为产品和技术相关的培训服务,培养华为产业链所…...
高级 Conda 使用:环境导出、共享与优化
1. 引言 在 Conda 的基础包管理功能中,我们了解了如何安装、更新和卸载包。但对于开发者来说,如何更好地管理环境、导出环境配置、共享环境,以及如何优化 Conda 的使用效率,才是提高工作效率的关键。本篇博客将进一步深入 Conda …...
从算法到落地:DeepSeek如何突破AI工具的同质化竞争困局
🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 Linux网络编程笔记: https://blog.cs…...
P9584 「MXOI Round 1」城市
题目描述 小 C 是 F 国的总统,尽管这个国家仅存在于网络游戏中,但他确实是这个国家的总统。 F 国由 n 个城市构成,这 n 个城市之间由 n−1 条双向道路互相连接。保证从任意一个城市出发,都能通过这 n−1 条双向道路,…...
CodeGPT + IDEA + DeepSeek,在IDEA中引入DeepSeek实现AI智能开发
CodeGPT IDEA DeepSeek,在IDEA中引入DeepSeek 版本说明 建议和我使用相同版本,实测2022版IDEA无法获取到CodeGPT最新版插件。(在IDEA自带插件市场中搜不到,可以去官网搜索最新版本) ToolsVersionIntelliJ IDEA202…...
Filter过滤器
Filter:过滤器 概念: web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能 过滤器的作用:一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符处理… 过滤器的生…...
git如何下载指定版本
要使用Git下载指定版本,可以通过以下步骤进行操作: 1. 使用Git命令行下载指定版本: 1.1 首先,使用git clone命令克隆整个git库到本地。例如:git clone [库的URL]。这将下载最新的代码到本地。 1.2 进入克隆…...
开源的 DeepSeek-R1「GitHub 热点速览」
春节假期回来,一睁眼全是王炸级的开源模型 DeepSeek-R1! GitHub 地址→github.com/deepseek-ai/DeepSeek-R1 DeepSeek-R1 开源还不到一个月,Star 数就飙升至冲破天际的 70k。虽然目前仅开源了模型权重,但同时发布的技术论文详细地…...
Open FPV VTX开源之OSD使用分类
Open FPV VTX开源之OSD使用分类 1. 源由2. 硬件2.1 【天空端】SigmaStar2.2 【天空端】Raspberry Pi2.3 【地面端】 3. 软件3.1 天空端软件3.2 地面端软件 4. 分类4.1 嵌入式OSD分类A1-嵌入式OSD:SigmaStar Android分类A2-嵌入式OSD:SigmaStar Hi3536分…...
请求超时处理
RequestMapping("/test") public DeferredResult<String> test() {DeferredResult<String> deferredResult new DeferredResult<>(6000L); // 设置超时时间为6秒// 模拟长时间任务new Thread(() -> {try {Thread.sleep(10000); // 模拟10秒的任…...
利用prompt技术结合大模型对目标B/S架构软件系统进行测试
利用prompt技术结合大模型对目标B/S架构软件系统进行测试,可参考以下步骤和方法: 测试需求理解与prompt设计 明确测试点:梳理B/S架构软件系统的功能需求、非功能需求(如性能、安全性、兼容性等),确定具体的测试点,如用户登录功能、数据查询功能、系统响应时间要求等。设…...
Go 语言里中的堆与栈
在 Go 语言里,堆和栈是内存管理的两个重要概念,它们在多个方面存在明显差异: 1. 内存分配与回收方式 栈 分配:Go 语言中,栈内存主要用于存储函数的局部变量和调用信息。当一个函数被调用时,Go 会自动为其…...
【人工智能】如何选择合适的大语言模型,是能否提高工作效率的关键!!!
DeepSeek R1入门指南 导读一、提示语差异1.1 指令侧重点不同1.2 语言风格差异1.3 知识运用引导不同 二、挑选原则2.1 模型选择2.2 提示语设计2.3 避免误区 结语 导读 大家好,很高兴又和大家见面啦!!! 在前面的内容中,…...
常见的IP地址分配方式有几种:深入剖析与适用场景
在数字互联的世界里,IP地址如同网络世界的“门牌号”,是设备间通信的基础。随着网络技术的飞速发展,IP地址的分配方式也日趋多样化,以适应不同规模、不同需求的网络环境。本文将深入探讨当前主流的几种IP地址分配方式,…...
无人机常见的开源飞控项目
开源飞控软件项目为无人机等无人载具的开发和应用提供了丰富的资源和灵活的解决方案,以下是一些常见的开源飞控软件项目: 1、PX4 简介:PX4 是一个高度模块化、可扩展的开源飞行控制平台,被广泛应用于各种类型的无人机࿰…...
模型报错infeasible,如何查看冲突约束
在使用Gurobi求解模型时,如果模型不可行(infeasible),可以通过以下步骤来查看冲突的约束或变量,帮助诊断问题: 1. 使用 computeIIS() 方法 Gurobi 提供了 computeIIS() 方法,用于计算不可行模…...
谭浩强C语言程序设计(5) 9章
1、统计三个候选人的票数 #include <cstdio> // 引入标准输入输出库 #include <cstring> // 引入字符串处理库,用于 strcmp 函数 #define N 10 // 定义一个宏常量 N,表示数组的最大长度// 定义一个结构体 Person,用于存储…...
Large Language Model Distilling Medication Recommendation Model
摘要:药物推荐是智能医疗系统的一个重要方面,因为它涉及根据患者的特定健康需求开具最合适的药物。不幸的是,目前使用的许多复杂模型往往忽视医疗数据的细微语义,而仅仅严重依赖于标识信息。此外,这些模型在处理首次就…...
STM32F407通过FSMC扩展外部SRAM和NAND FLASH
1 扩展外部SRAM 1.1 地址情况 FSMC控制器的存储区分为4个区(Bank),每个区256MB。其中,Bank1可以用于连接SRAM、NOR FLASH、PSRAM,还可以连接TFT LCD。Bank1的地址范围是0x60000000~0x6FFFFFFF。Bank1又分为4个子区,每…...
ArcGIS注册开发账号及API KEY
注册与激活 Sign up | ArcGIS Location Platform 填写信息,然后邮箱收到激活邮件,激活,再补充信息。 参考 Tutorial: Create an API key | Documentation | Esri Developer 产生API KEY Tutorial: Create an API key | Documentation |…...
C++-----------酒店客房管理系统
酒店客房管理系统 要求: 1.客房信息管理:包括客房的编号、类型、价格、状态等信息的录入和修改; 2.顾客信息管理:包括顾客的基本信息、预订信息等的管理; 3.客房预订:客户可以根据需要进行客房的预订,系统会自动判断客房的可用情况; 4.入住管理:客户入住…...