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

相关推荐
哎呦 你干嘛~22 分钟前
plc单片机485通讯
单片机·嵌入式硬件
szxinmai主板定制专家1 小时前
基于 PC 的控制技术+ethercat+linux实时系统,助力追踪标签规模化生产,支持国产化
arm开发·人工智能·嵌入式硬件·yolo·fpga开发
泡泡糖的中文规格书4 小时前
【硬件设计】LM358DR2G中文文档深度解读:高质量翻译与芯片特性全解析
嵌入式硬件·规格说明书·电路设计·运放·中文翻译·datasheet
czwxkn5 小时前
2STM32(stdl)GPIO输入
stm32·单片机·嵌入式硬件
码农三叔6 小时前
(9-1)电源管理与能源系统:电池选择与安全
人工智能·嵌入式硬件·安全·机器人·能源·人形机器人
qq_246646197 小时前
openclaw快速安装-windows版
windows·stm32·单片机
染予9 小时前
13.AD软件操作:原理图如何导入PCB及导入常见错误
嵌入式硬件
小莞尔10 小时前
【51单片机】【protues仿真】 基于51单片机波形发生器系统
c语言·单片机·嵌入式硬件·物联网·51单片机
码农三叔10 小时前
(9-2-01)电源管理与能源系统:能耗分析与功率管理(1)步行能耗估计
人工智能·嵌入式硬件·机器人·人机交互·能源·人形机器人