This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF52832 UART & SAADC Driver Confliction

Hello, I am trying to use adc with the uart so i can monitor the readings from adc. But when I include both drivers (nrf_drv_saadc , nrf_drv_uart) i got a confliction error. As far as I understand there are two definitions for the variable "m_cb" ;

In uart driver it is defined as "static nrf_drv_saadc_cb_t m_cb;" In saadc driver its is defined as "static uart_control_block_t m_cb[UART_ENABLED_COUNT];"

Should I change include order of the drivers ?

I am using Eclipse IDE,4.9.3 GCC, NRF5 SDK v14.2.0.

Parents
  • Sure,

    #include <stdio.h>
    #include <stdlib.h>
    #include "sdk_config.h"
    #include "nrf_gpio.h"
    #include "nrf_delay.h"
    #include "nrf_uart.h"
    #include "nrf_drv_saadc.c"
    #include "app_uart.c"
    
    void main(void) {
      uint32_t err_code;
      nrf_saadc_value_t adc_result;
      nrf_drv_saadc_config_t adc_conf=NRF_DRV_SAADC_DEFAULT_CONFIG;
    
      nrf_saadc_channel_config_t adc_channel_conf=NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN0);
    
      nrf_gpio_cfg_output(7);
      nrf_drv_saadc_init(&adc_conf,NULL);
      nrf_drv_saadc_channel_init(0,&adc_channel_conf);
      nrf_drv_saadc_buffer_convert(&adc_result,2);
      nrf_drv_saadc_sample();
      while(1){
        nrf_delay_ms(1000);
        nrf_gpio_pin_toggle(7);
        //nrf_drv_saadc_sample_convert(0,&adc_result);
        printf("ADC Res : %d\n",adc_result);
    
      }
    }
    
Reply
  • Sure,

    #include <stdio.h>
    #include <stdlib.h>
    #include "sdk_config.h"
    #include "nrf_gpio.h"
    #include "nrf_delay.h"
    #include "nrf_uart.h"
    #include "nrf_drv_saadc.c"
    #include "app_uart.c"
    
    void main(void) {
      uint32_t err_code;
      nrf_saadc_value_t adc_result;
      nrf_drv_saadc_config_t adc_conf=NRF_DRV_SAADC_DEFAULT_CONFIG;
    
      nrf_saadc_channel_config_t adc_channel_conf=NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN0);
    
      nrf_gpio_cfg_output(7);
      nrf_drv_saadc_init(&adc_conf,NULL);
      nrf_drv_saadc_channel_init(0,&adc_channel_conf);
      nrf_drv_saadc_buffer_convert(&adc_result,2);
      nrf_drv_saadc_sample();
      while(1){
        nrf_delay_ms(1000);
        nrf_gpio_pin_toggle(7);
        //nrf_drv_saadc_sample_convert(0,&adc_result);
        printf("ADC Res : %d\n",adc_result);
    
      }
    }
    
Children
No Data
Related