用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概念:

相关推荐
三月雪落无痕1 小时前
altium designer2024绘制stm32过程笔记x`
笔记·嵌入式硬件
天天爱吃肉82183 小时前
新能源汽车热管理核心技术解析:冬季续航提升40%的行业方案
android·python·嵌入式硬件·汽车
章鱼哥嵌入式开发3 小时前
# STM32F103 SD卡读写程序
stm32·单片机
广药门徒5 小时前
定时器时钟来源可以从输入捕获引脚输入
单片机·嵌入式硬件
爱睡觉的王宇昊8 小时前
二、【ESP32开发全栈指南:ESP32 GPIO深度使用】
单片机·嵌入式硬件
学生哥-_-14 小时前
STM32通过KEIL pack包轻松移植LVGL,并学会使用GUI guider
stm32·lvgl·tftlcd·gui guider·gt911
三三十二14 小时前
STM32实战:数字音频播放器开发指南
stm32·单片机·嵌入式硬件
想搞嵌入式的小白17 小时前
STM32外设问题总结
单片机·嵌入式硬件
让子弹飞0217 小时前
35.成功解决编写关于“江协科技”编写技巧第二期标志位积累的问题
stm32·按键
木子单片机18 小时前
基于STM32语音识别柔光台灯
stm32·单片机·嵌入式硬件·proteus·语音识别·keil