nrf52832 pwm的使用

一、前提条件

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,

二、使用库介绍

利用到的硬件条件,里面还 用到了定时器
nrf52832 pwm的使用_第1张图片

三 、如何使用

3.1 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);
} 

3.2 使用函数

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%,再初始化已经设置了频率

四 使用注意点:

限制的
在这里插入图片描述
对于协议栈
nrf52832 pwm的使用_第2张图片

你可能感兴趣的:(nRF52832_ble)