news 2026/4/30 12:30:35

【STM32】基于TPS61165芯片的LED驱动电路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【STM32】基于TPS61165芯片的LED驱动电路

目录

一、简单介绍

二、cubeMX配置

开调试口

开PWM

时钟

按键

三、代码编写

四、效果

五、备注

六、工程链接


一、简单介绍

TPS61165是一款白色LED灯驱动芯片,输入电压3~18V,开关电流最大1.2A。具有LED开路保护,可以PWM调光或者高低电平控制。

参考芯片推荐设计,原理图如下

选择0.62欧姆电阻,则串联电流等于0.2/0.62=322mA

VBUS连接12V输入电源,笔者选用STM32F103C8T6作为MCU,LED_CTRL1连接单片机的PA7引脚

使用两个按键设置占空比(亮度)

MCU电路

二、cubeMX配置

开调试口

开PWM

设置PWM波频率为20khz,初始占空比10%

时钟

开启外部高速时钟

按键

选择输入上拉

笔者使用ST7789屏幕观测,因此还启用了SPI接口

三、代码编写

主要涉及到TFT彩屏,按键输入,定时器PWM输出的内容,主要代码如下

/* Includes ------------------------------------------------------------------*/ #include "main.h" #include "dma.h" #include "spi.h" #include "tim.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "keydrv.h" #include "st7789.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ int8_t light = 10; uint8_t str[20]; /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ 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_DMA_Init(); MX_SPI2_Init(); MX_TIM3_Init(); /* USER CODE BEGIN 2 */ KeyDrv_Config(); ST7789_Init(); ST7789_Clear(BLACK); HAL_TIM_Base_Start(&htim3); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { if (button[0].buttonAction == CLICK_SINGLE) { button[0].buttonAction = CLICK_NULL; light += 10; if (light > 100) { light = 100; } __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, light); } if (button[1].buttonAction == CLICK_SINGLE) { button[1].buttonAction = CLICK_NULL; light -= 10; if (light < 0) { light = 0; } __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, light); } sprintf(str, "light:%d ", light); ST7789_ShowString(0, 140, str, Font_16x26, ST7789_RGB565(0xFFFF), BLACK); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }

四、效果

五、备注

值得一提的是,把与TPS61165的CTRL相连的单片机的PA7引脚由PWM改成推挽输出,就可以实现点亮/熄灭LED,取决于IO电平的高低。

六、工程链接

STM32基于TPS61165芯片的LED驱动电路资源-CSDN下载

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:07:49

网易云音乐快速听歌神器:3步实现个性化推荐与播放量提升

网易云音乐快速听歌神器&#xff1a;3步实现个性化推荐与播放量提升 【免费下载链接】netease-cloud-fastplay 网易云音乐快速听歌&#xff0c;自定义听歌风格&#xff0c;一键刷听歌次数 项目地址: https://gitcode.com/gh_mirrors/ne/netease-cloud-fastplay 网易云音…

作者头像 李华
网站建设 2026/4/30 11:06:42

解锁室内AI训练新纪元:Habitat-Matterport 3D数据集全方位指南

解锁室内AI训练新纪元&#xff1a;Habitat-Matterport 3D数据集全方位指南 【免费下载链接】habitat-matterport3d-dataset This repository contains code to reproduce experimental results from our HM3D paper in NeurIPS 2021. 项目地址: https://gitcode.com/gh_mirro…

作者头像 李华
网站建设 2026/5/1 7:22:41

web前端:基于Three.js库的星云探索交互网页

设计概述 本次分享将介绍如何使用Three.js库创建一个沉浸式的 "星云探索" 交互应用。这个项目通过WebGL构建可视化的星系模型&#xff0c;结合自定义着色器实现动态星云效果&#xff0c;构建了一个包含星系生成、交互探索、状态管理的完整应用&#xff0c;展现了Web…

作者头像 李华
网站建设 2026/4/27 13:16:59

D.二分查找-进阶——2389. 和有限的最长子序列

题目链接&#xff1a;2389. 和有限的最长子序列&#xff08;简单&#xff09; 算法原理&#xff1a; 解法&#xff1a;二分查找 8ms击败25.52% 时间复杂度O(Nlogn) ①由于 结果数组存的是子序列 的 最大 长度&#xff0c;而不是子序列&#xff0c;所以可以打乱顺序&#xff0c;…

作者头像 李华
网站建设 2026/5/1 7:21:42

前端高频面试题之Promise相关方法

前言 Promise一直是前端面试中的热点&#xff0c;下面给大家介绍下Promise的相关方法。 1. Promise.all 1.1 介绍 调用Promise.all时需要传入一个promise数组&#xff0c;我们称它为promiseArr&#xff0c;然后Promise.all会返回一个新的Promise&#xff0c;我们把它称为p&…

作者头像 李华
网站建设 2026/5/1 11:11:10

如何快速解决网盘限速:网盘直链下载助手的完整使用指南

你是否曾经被网盘的龟速下载折磨得抓狂&#xff1f;每次下载大文件都要等上几个小时&#xff0c;甚至被迫安装各种官方客户端&#xff1f;网盘直链下载助手就是你的终极解决方案&#xff01;这款免费开源的浏览器扩展脚本能够轻松获取百度网盘、阿里云盘等六大主流网盘的直链下…

作者头像 李华