大家好,今天小白给大家介绍一下,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时的一些接口定义方式,仅供参考,欢迎一起学习交流。