【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输出的内容,主要代码如下

cpp 复制代码
/* 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下载

相关推荐
无畏jh25 分钟前
TLE5012B磁阻芯片解读
嵌入式硬件·汽车嵌入式·磁阻芯片
培林将军33 分钟前
Altium Designer 22的安装与汉化
嵌入式硬件·ad工具安装
idcardwang35 分钟前
xl9555-IO拓展芯片
stm32·单片机·嵌入式硬件
Y1rong39 分钟前
STM32之EXTI
stm32·单片机·嵌入式硬件
兆龙电子单片机设计44 分钟前
【STM32项目开源】STM32单片机智能语音家居控制系统
stm32·单片机·嵌入式硬件·物联网·开源·自动化
TaidL1 小时前
茂捷M1020电感式编码器芯片赋能工业智能升级,适用于工业及机器人等领域的各种应用场景
单片机·嵌入式硬件
意法半导体STM321 小时前
【官方原创】SAU对NSC分区的影响 LAT1578
stm32·单片机·嵌入式硬件·mcu·信息安全·trustzone·stm32开发
SmartRadio1 小时前
MK8000(UWB射频芯片)与DW1000的协议适配
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·dw1000
LDR0061 小时前
芯片电路的引脚标识代表什么?
stm32·单片机·嵌入式硬件
恒锐丰小吕2 小时前
屹晶微 EG3116 600V高压、2A/2.5A驱动、双高有效输入逻辑的半桥栅极驱动芯片技术解析
嵌入式硬件·硬件工程