这里所说的客制化PWM指的就是我们可以输出任何想要的方波波形,例如输出10个完整的波後停止输出,或着是输出10个波的循环,而在一个循环内,每个波的工作周期递增(0%、10%、20%...)。我们接下来就来实作看看这两个吧~
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
}
这个函式一样在tim.c档当中以若定义的形式定义过了,我们可以直接复制到main.c档当中重新定义。
完整的程序如下:
/* USER CODE BEGIN 4 */
int pulse = 5;
int count = 0;
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
if (++count == pulse) {
count = 0;
HAL_TIM_PWM_Stop_IT(&htim2, TIM_CHANNEL_1);
}
}
/* USER CODE END 4 */
在main当中启动PWM输出
HAL_TIM_PWM_Start_IT(&htim2, TIM_CHANNEL_1);
while (1) {
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
这是一个经过巧妙设计的中断函式,这里个count要用前置++才可以喔!我们只要更改pulse的值就可以改变输出波的数量。
这里的HAL_TIM_PWM_Stop_IT()可以停止PWM的输出
同样的,我们一开始要启用这个函式但是由於我们是启用中断版本的PWM输出,函式为以下这个
HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
走了1/3天的服务介绍,现在让我们尝试把各项服务串起来看看吧! 接下来几天,我们会透过AWS云端服务...
接着来讲讲new 建构值部分.... public class Yaowen { public Ya...
昨天说的是 Android 今天我们来聊聊如何打包 ios, 但因为没有开发帐号,所以就只说 rea...
前言 目标:串接虾皮订单、标签资讯,目前串接虾皮 OpenAPI 2.0 版本(串接手册) 前面已经...
上一篇整理了 JavaScript 操纵网页元件事件的基本流程: 指定网页元件,可用 getElem...