1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /********************** 头文件 *************************/
- #include "bsp_saadc.h"
- /********************** 变量区 *************************/
- static nrf_saadc_value_t saadc_val;
- //*****************************************************************//
- /********************** 函数声明区 *************************/
- /**
- @breif 函数功能:采集一次ADC
- @param none
- @return 采样值
- */
- int16_t GetOneSaadcSample(void)
- {
- nrf_gpio_cfg_output(PIN_ADC_EN);
- nrf_gpio_pin_write(PIN_ADC_EN,0);
- nrfx_saadc_sample_convert(0,&saadc_val); //采样当前ADC
- nrf_gpio_cfg_default(PIN_ADC_EN);
- return saadc_val;
- }
- /**
- @breif 函数功能:关闭芯片的ADC外设,降低功耗
- @param none
- @return none
- */
- void SaadcUnInit(void)
- {
- nrfx_saadc_channel_uninit(0);
- nrf_drv_saadc_uninit();
- }
- //阻塞模式不需要回调事件处理获取采样值
- void saadc_evt_callback(nrf_drv_saadc_evt_t const * p_event)
- {
-
- }
- uint32_t SAADC_Init(void)
- {
- ret_code_t err_code;
-
- //定义 ADC 通道配置结构体,并使用单端采样配置宏 初始化
- //NRF_SAADC_INPUT_AIN3 是使用的模拟输入通道
- nrf_saadc_channel_config_t channel_config =
- {
- .resistor_p = NRF_SAADC_RESISTOR_DISABLED, \
- .resistor_n = NRF_SAADC_RESISTOR_DISABLED, \
- .gain = NRF_SAADC_GAIN1_6, \
- .reference = NRF_SAADC_REFERENCE_INTERNAL, \
- .acq_time = NRF_SAADC_ACQTIME_10US, \
- .mode = NRF_SAADC_MODE_SINGLE_ENDED, \
- .burst = NRF_SAADC_BURST_DISABLED, \
- .pin_p = (nrf_saadc_input_t)(PIN_ADC_IN-1), \
- .pin_n = NRF_SAADC_INPUT_DISABLED \
- };
- // NRFX_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN3);
-
- //初始化 SAADC,注册事件回调函数
- err_code = nrf_drv_saadc_init(NULL,saadc_evt_callback);
- APP_ERROR_CHECK(err_code);
- //初始化 SAADC 通道
- err_code = nrfx_saadc_channel_init(PIN_ADC_CHANNEL,&channel_config);
- APP_ERROR_CHECK(err_code);
-
- return err_code;
- }
|