W601单片机pwm捕获引脚高电平的时间
时间: 2023-09-27 11:12:45 浏览: 123
W601单片机的PWM捕获模式可以通过计数器来测量引脚高电平的时间。下面是一个简单的代码示例:
```c
#include "w60x_pwm.h"
int main(void)
{
/* 初始化PWM引脚 */
PWM_InitTypeDef pwm_init_struct;
pwm_init_struct.PWM_Pin = PWM_Pin_1;
pwm_init_struct.PWM_Mode = PWM_Mode_Capture;
pwm_init_struct.PWM_CaptureEdge = PWM_CaptureRisingEdge;
pwm_init_struct.PWM_CapturePrescaler = PWM_CapturePrescaler_1;
pwm_init_struct.PWM_CapturePolarity = PWM_CapturePolarity_Rising;
PWM_Init(PWM1, &pwm_init_struct);
/* 配置计数器,启动PWM捕获 */
PWM_CounterTypeDef counter_init_struct;
counter_init_struct.PWM_CounterReloadValue = 0xFFFF;
counter_init_struct.PWM_CounterClockDivision = PWM_CounterClockDivision_1;
PWM_CounterInit(PWM1, &counter_init_struct);
PWM_Cmd(PWM1, ENABLE);
/* 循环读取PWM捕获值 */
while(1)
{
uint16_t capture_value = PWM_GetCaptureValue(PWM1);
/* 根据需要处理捕获值 */
}
}
```
在上面的代码中,我们初始化了PWM引脚为捕获模式,然后配置了一个计数器来计算引脚高电平的时间。在while循环中,我们不断读取捕获值并进行处理。注意,由于W601单片机的PWM模块只有一个计数器,因此只能同时测量一个引脚的高电平时间。如果需要同时测量多个引脚的高电平时间,可以考虑使用外部计数器。
阅读全文