用HAL库改写江科大的stm32入门-6-3 PWM驱动LED呼吸灯

接线图:

2 :实验目的:

利用pwm实现呼吸灯。

关键PWM定时器设置:

代码部分:

cpp 复制代码
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_TIM2_Init();
  /* USER CODE BEGIN 2 */
  // start timer2 pwm
  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); // start pwm on channel 1 of timer 2

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  // for breath led, change duty cycle of pwm, from 0 to 100% and back to 0
    for (int i = 0; i < 500; i++)
    {
      __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, i);  // set duty cycle of pwm
      HAL_Delay(10);
    }
    //delay 500ms
    HAL_Delay(200);

    for (int i = 500; i > 0; i--)
    {
      __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, i);  // set duty cycle of pwm
      HAL_Delay(10);
    }
    //delay 200ms
    HAL_Delay(200);

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

ps:pwm说明:

输出比较、CNT、CRR的概念:

pwm概念:

相关推荐
恶魔泡泡糖19 分钟前
stm32F103C8T6标准库反射(反射式红外)传感器触发蜂鸣器
stm32·单片机·嵌入式硬件
编程之升级打怪30 分钟前
Arduino嵌入式笔记
嵌入式硬件
华清远见IT开放实验室42 分钟前
STM32+Linux双体系,零基础玩转嵌入式
linux·stm32·嵌入式硬件
LCG元1 小时前
STM32实战:基于FreeRTOS的智能小车多任务调度(循迹+避障+通信)
stm32·单片机·嵌入式硬件
俊基科技1 小时前
FT‑02 全双工语音通话消回音测试底座:设计原理、性能特性与应用场景
嵌入式硬件·音频测试·语音处理模块·全双工通话·声学回声消除
zmj3203242 小时前
I2C总线协议详细介绍
单片机·嵌入式硬件·i2c·总线协议
SDAU20052 小时前
Arduino编程CH552
c语言·开发语言·单片机
快乐的划水a2 小时前
单片机仿Linux驱动开发(一)
linux·驱动开发·单片机
实在太懒于是不想取名2 小时前
STM32N6的开发日记(5):数字摄像头接口像素流水线DCMIPP让MCU拥有高性能摄像头资源
stm32·单片机·嵌入式硬件
天涯铭3 小时前
深入浅出:单片机I/O模式与上拉电阻
单片机·上拉电阻·gpio输出