网上nRF51822的资料太少了,这么两天看了一点关于nRF51822的adc,pwm,希望对新手有点作用吧,高手勿喷,我也是个初学者:
文章图片
nRF51822 ADC引脚分布:
文章图片
当然P0.26和P0.27也可以做ADC引脚!~~~
把官方给的nrf_adc.c加入工程,然后直接在main函数中调用就行了:
nrf_adc_init(ADC_RES_8bit, ADC_INPUT_AIN7_P06, ADC_INT_DISABLED);
adc_data = https://www.it610.com/article/nrf_adc_read();
printf("adc data1:%d\r\n ",adc_data);
第一个参数是精度,第一个参数是引脚号,第三个关于中断的
第二个参数对应的引脚号:
typedef enum
{
ADC_INPUT_AIN0_P26 = 0,
ADC_INPUT_AIN1_P27 = 1,
ADC_INPUT_AIN2_P01 = 2,
ADC_INPUT_AIN3_P02 = 3,
ADC_INPUT_AIN4_P03 = 4,
ADC_INPUT_AIN5_P04 = 5,
ADC_INPUT_AIN6_P05 = 6,
ADC_INPUT_AIN7_P06 = 7
} ADC_input_selection_t;
多通道采集,直接在主程序中直接切换就行了。
关于PWM,也是一样直接将官方给的nrf_pwm.c加入到工程中:
nRF51822任何一个引脚都可以用作pwm,只需要在主函数中这样配置
pwm_config.gpio_num[0]= 15;
//输出pwm的引脚号
设置输出:
【硬件|nRF51822 ADC PWM】
nrf_pwm_set_value(0, 100);
当然这种方式只能配置3路PWM
代码链接:
http://download.csdn.net/detail/zhaokanghui/8183385