FR8016HA LED1/LED2脚可以做PWM功能吗?
-
我的FR8016HA LED1/LED2脚(pin脚序号3/4)分别连接了一个个LED,现在想调节亮度,但是不想修改硬件,我看driver_pmu.c中有函数pmu_set_led1_as_pwm/pmu_set_led2_as_pwm,是不是这两个脚可以作为PWM功能?如果可以作为PWM功能,可以调节占空比来控制亮度,如果可以的话,怎么控制,有示例代码吗?

-
@summer #include "driver_pmu.h"
#include "driver_pmu_pwm.h"
#include "driver_system.h"void led2_pwm_example(void)
{
pmu_pwm_init();pmu_set_led2_as_pwm(); // 配置 LED2 为 PMU PWM 模式(固定为 PWM2) // 获取 RC 时钟频率(约 62.5KHz) uint32_t rc_freq = pmu_get_rc_clk(false); // 目标:2 Hz,占空比 50% #define TARGET_FREQ 2 // 2 Hz,闪烁可见 #define DUTY_PERCENT 50 // 每个计数单位 = 2 / rc_freq 秒 uint32_t total = (rc_freq / 2) / TARGET_FREQ; uint16_t high = total * DUTY_PERCENT / 100; uint16_t low = total - high; // 设置 PWM2 参数(用 PA2 作为代理,因为 (0*8+2)%4 = 2) pmu_pwm_set_param(GPIO_PORT_A, GPIO_BIT_2, high, low); // 停止并复位计数器 pmu_pwm_stop(GPIO_PORT_A, GPIO_BIT_2); // 启动连续输出,极性不反转 pmu_pwm_start(GPIO_PORT_A, GPIO_BIT_2, true, false);}