Gokit4开发板连接Sensor的接口初始化



  • 大家好,今天小白给大家介绍一下,Gokit开发板外接Sensor时的一些接口初始化的定义方法,仅供参考,欢迎一起交流学习。

    1 传感器相关的接口函数定义
    目录: demo-Gizwits-cloud-connection/main/main.c

    首先介绍传感器初始化的相关接口

    void sensorInit(void)

    {

        int32 ret = -1;

        gizLog(LOG_INFO,"Sensor initialization ...\n");

        led_init(); //led  init

        motor_init(); //motor init

        heartrate_init(); //plusensor init

        motion_init(); //adxl345 sensor init

        pressure_init(); //fsr402 init

        txm_module_object_allocate(&userTimer, sizeof(TX_TIMER));

        ret = tx_timer_create(userTimer, "userTimer", userTimerCB, NULL, 1,

                              200, TX_AUTO_ACTIVATE);

        if(ret != TX_SUCCESS)

        {

            gizLog(LOG_WARNING,"Failed to create UserTimer.\n");

        }

    }

    该函数主要用于led,电机,心率传感器,三轴加速度传感器,压力传感器等的初始化。

    2 led相关的初始化
    led初始化:

    void led_init()      //该种接口定义方式主要是为了实现代码分层

    {

            gizLog(LOG_INFO,"in led init...\n");

           led_gpio_config(); //该接口主要作用对led相关引脚的初始化

    }

    2.1 配置led相关引脚的接口
     demo-Gizwits-cloud-connection/driver/gpio/gpio.c

     void led_gpio_config()

     {

        gizLog(LOG_INFO,"in led_gpio_config...\n");

        //led_pin_num_motion = PIN_E_GPIO_06; // motion led

        gpio_config(led_pin_num_motion, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);

        //led_pin_num_Pulsesensor = PIN_E_GPIO_07; //pulsensor led

        gpio_config(led_pin_num_Pulsesensor, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);

        //led_pin_num_pressure = PIN_E_GPIO_08; //pressure led

        gpio_config(led_pin_num_pressure, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);

    }

    该接口主要用于配置led相关的引脚。

    3 马达相关的初始化
    马达初始化:

    void motor_init()

    {

         gizLog(LOG_INFO,"in motor_init ...\n");

         motor_gpio_config(); //该接口主要作用对led相关引脚的初始化

    }

    3.1 配置马达相关的引脚
    void motor_gpio_config()

    {

          gizLog(LOG_INFO,"in motor_gpio_config ...\n");

          motor_pin_num = PIN_E_GPIO_09; // motor pin;

          gpio_config(motor_pin_num, QAPI_GPIO_OUTPUT_E, QAPI_GPIO_NO_PULL_E, QAPI_GPIO_2MA_E);

    }

    主要用于配置马达相关的引脚。

    4 心率传感器相关的初始化
    心率传感器初始化:

    void heartrate_init()

    {

           gizLog(LOG_INFO,"Pulsesensor initialization ...\n");

           Pulsesensor_init(); //该接口主要作用是对PluseSensor相关的初始化

    }

    4.1用于初始化PluseSensor传感器
    Smart-heart-rate-dector/driver/PluseSensor/PluseSensor.c

    void Plusesensor_init()

    {

          qapi_Status_t status = QAPI_ERROR;

          const char *Channel_Name_ADC1 = ADC_INPUT_ADC1;

          qapi_Timer_Sleep(2, QAPI_TIMER_UNIT_SEC, true);

          status = adc_open_handle();

          if(status != QAPI_OK)

        {

           //IOT_DEBUG("Get ADC Handle ERROR!");

           gizLog(LOG_INFO,"adc open handle error...\n");

           return;

        }

        status = adc_get_properties(Channel_Name_ADC1, &Properties_ADC1);

        if(status != QAPI_OK)

        {

              gizLog(LOG_INFO,"Get ADC channel-%s Configuration ERROR...\n", Channel_Name_ADC1);

              return;

        }

    }

    主要是adc操作的一些初始化。

    4.2 adc相关接口封装
    Smart-heart-rate-dector/driver/adc/adc.c

    qapi_Status_t adc_open_handle(void)

    {

    qapi_Status_t status = QAPI_ERROR;

        status = qapi_ADC_Open(&adc_handle, 0);

        if (QAPI_OK != status)

        {

            //qt_uart_dbg(uart_conf.hdlr,"Get ADC Handle ERROR!\r\n");

        }

        return status;

    }

    qapi_Status_t adc_get_properties(const char *Channel_Name_Ptr, qapi_Adc_Input_Properties_Type_t *Properties_Ptr   )

    {

        qapi_Status_t status = QAPI_ERROR;

        uint32_t Channel_Name_Size = strlen(Channel_Name_Ptr) + 1;

        status = qapi_ADC_Get_Input_Properties(adc_handle, Channel_Name_Ptr, Channel_Name_Size, Properties_Ptr);

        if (QAPI_OK != status)

        {   

            //qt_uart_dbg(uart_conf.hdlr,"ADC Get Channel-%s Properties ERROR!\r\n", Channel_Name_Ptr);

        }

        return status;

    }

    主要是封装了adc相关的一些API。

    5 运动传感器相关初始化
    运动传感器初始化:

    void motion_init()

    {

         gizLog(LOG_INFO,"ADXL345 initialization ...\n");

         adxl345_init(); //该接口主要作用是对adxl345传感器的初始化

    }

    5.1 adxl345传感器初始化相关接口暂未实现。

    6 压力传感器相关初始化
    压力传感器初始化:

    void pressure_init()

    {

         gizLog(LOG_INFO,"ADXL345 initialization ...\n");

         fsr402_init(); //该接口主要作用是对fsr345传感器的初始化

    }

    6.1 fsr402传感器初始化相关接口暂未实现。

    7 数据采集函数
    7.1 心率采集接口
    Smart-heart-rate-dector/driver/PluseSensor/PluseSensor.c

    uint8_t getHeartRateValue(uint32_t* heartrate )

    {

        while(1)

       {

          .....

          status = qapi_ADC_Read_Channel(adc_handle, &Properties_ADC1, &result);

          .....

          qapi_Timer_Sleep(2, QAPI_TIMER_UNIT_MSEC, true);

        }

         status = qapi_ADC_Close(adc_handle, false);

    }

    7.2 其他几种传感器的数据采集接口,暂未定,后续实现后再行补充。

    8 小结

    本篇博客主要介绍了Gokit4外接sensor时的一些接口定义方式,仅供参考,欢迎一起学习交流。
    --------------------- 
    作者:weixin_38498942 
    来源:CSDN 
    原文:https://blog.csdn.net/weixin_3... 
    版权声明:本文为博主原创文章,转载请附上博文链接!


Log in to reply