diff --git a/book/05:定时器/01.md b/book/05:定时器/01.md index 124deb8..77c9eed 100644 --- a/book/05:定时器/01.md +++ b/book/05:定时器/01.md @@ -623,7 +623,40 @@ main.c 的92行,用户代码: 上述代码是以查询方式启动TIM4的PWM(因为没有使用中断)。htim4是TIM4的结构体,该结构书上没有说明,和定时中断中的结构体是一致的,可以理解成C语言的对象,包括数据与很多函数指针。 -## 4.6. 进阶任务:实现呼吸灯(略) +## 4.6. 进阶任务:实现呼吸灯 + +1. 查看绿色LED所属的定时器通道是:TIM3的通道2; +2. 设置TIM3 + +![image-20240929150617735](./img/image-20240929150617735.png) + +3. 加入代码: + +```c + /* USER CODE BEGIN 2 */ + int duty = 0; + int step = 1; + HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); + /* USER CODE END 2 */ +``` + +和: + +```c + /* USER CODE BEGIN WHILE */ + while (1) { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + for (duty = 0; duty < 100; duty = duty + step) { + __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, duty); + HAL_Delay(50); + } + } + /* USER CODE END 3 */ +``` + +问题:这里的呼吸灯不是真正的呼吸,而是逐渐变到最亮后突然变暗;请思考如何改进? # 5. 输入捕获功能 diff --git a/book/05:定时器/img/image-20240929150617735.png b/book/05:定时器/img/image-20240929150617735.png new file mode 100644 index 0000000..85a74c6 Binary files /dev/null and b/book/05:定时器/img/image-20240929150617735.png differ