1:软件:基于sdk14.2.0
2:硬件:nrf52832
3:官方连接:
https://infocenter.nordicsemi.com/index.jsptopic=%252Fcom.nordic.infocenter.sdk5.v14.1.0%252Fnrf52810_user_guide.html
说明:使用的是nordic提供的库函数,其实是软件模拟pwm,
注意点:
1:配置单通道,以及频率周期和引脚: #define APP_PWM_DEFAULT_CONFIG_1CH(period_in_us, pin)
2:配置pwm极性:pwmled_cfg.pin_polarity[1] = APP_PWM_POLARITY_ACTIVE_HIGH;
设置回调函数,初始化的时候用到:
#define LED_PIN 6
APP_PWM_INSTANCE(PWM1,1); // Create the instance "PWM1" using TIMER1. #define TIMER1_ENABLED 1
void pwm_ready_callback(uint32_t pwm_id) // PWM callback function
{
}
pwm初始化
void pwm_ledInit(void)
{
ret_code_t err_code;
app_pwm_config_t pwmled_cfg = APP_PWM_DEFAULT_CONFIG_1CH(50L,LED_PIN); //ÖÜÆÚ100us 1*1000*1000 /50 20k
pwmled_cfg.pin_polarity[1] = APP_PWM_POLARITY_ACTIVE_HIGH; // 1-0
err_code = app_pwm_init(&PWM1,&pwmled_cfg,pwm_ready_callback);
APP_ERROR_CHECK(err_code);
}
static void led_pwm_enable(void)
{
app_pwm_enable(&PWM1);
}
void app_pwm_led_disable(void)
{
app_pwm_disable(&PWM1);
}
// 设置函数
void pwm_set_Valu(uint32_t value)
{
app_pwm_channel_duty_set(&PWM1, 0, value) ;
}
void pwm_set_Valu(uint32_t value)
该函数就是设置pwm占空比的,value 取值范围是0-100,对应占空比是0%-100%,再初始化已经设置了频率