目录
1. 获取温湿度(硬件设备为sht10)
2. 获取大气压(硬件设备为bmp180)
3. 读取ADC值(硬件设备为ms1112)
4. 状态灯控制(硬件设备为pcal6416)
5. GPIO控制
5.1输出设置
5.2输入设置
5.3读取输入gpio电平
6. COM口
7. 相关结构体定义
1.获取温湿度(硬件设备为sht10)
原型:int get_humidity_tempareture(sht10_st *value)
参数:sht10_st结构体指针,读取的结果填充该结构体。结构体定义见后面
返回值:0-成功,-1 - 参数错误,-2 - 设备节点不存在,-3 - 读取失败
2.获取大气压(硬件设备为bmp180)
原型:int get_pressure_temparature(atmos_st *value)
参数:atmos_st结构体指针,读取的结果填充该结构体。结构体定义见后面
返回值:0-成功,-1 - 参数错误,-2 - 设备节点不存在,-3 - 读取失败
3.读取ADC值(硬件设备为ms1112)
原型:int adc_channel_get(int channel_no,int *value)
参数:channel_no - 通道 (取值范围1-8),int型指针-adc采样结果。
返回值:0-成功,-1 - 参数错误,-2 - 设备节点不存在,-3 - 读取失败
注意:该函数是读取原始的adc数据,还需要将adc值转为对应的输入采样电压。
输入电压 = ( (*value) * 2.048)/32768/0.4,单位= V
4.状态灯控制(硬件设备为pcal6416)
原型:int led_control_set(led_num_e led_no,led_state_e enable)
参数: led_no - led编号,enable - led设置状态
返回值:0-成功,-1 - 参数错误,-2 - 设备节点不存在,-3 - 设置失败
5.GPIO控制
5.1输出设置
原型:int gpio_direction_output(int gpio_no,int state)
参数:gpio_no - gpio编号,state - 0 输出低电平,1 - 输出高电平
返回值:0-成功,负数-失败
5.2输入设置
原型:int gpio_direction_input(int gpio_no)
参数:gpio_no-gpio编号
返回值:0-成功,负数-失败
5.3读取输入gpio电平
原型:int gpio_get_value(int gpio_no,int *gpio_state)
参数:gpio_no - gpio编号,int型指针-存放读取结果,*gpio_state=0 输入低电平
*gpio_state =1 输入高电平
返回值:0-成功,负数-失败
注意:该部分GPIO为应用层设置底层gpio状态,需要先在内核将对应的管脚注册为普通gpio功能,应用层才可以进行操作。
6.COM口
Com口可以直接用文件操作函数处理(open/read/write/close等),各com口对应的设备节点如下:
Com2-"/dev/ttymxc1"
Com3-"/dev/ttymxc2"
Com4-"/dev/ttymxc3"
Com5-"/dev/ttymxc6"
Com6-"/dev/ttymxc4"
Com7-"/dev/ttymxc5"
7.相关结构体定义
typedef enum {
LED_SINGAL_C,
LED_SINGAL_B,
LED_SINGAL_A,
LED_WIRELESS,
LED_GPS,
LED_ONLINE,
}led_num_e;
typedef enum{
LED_OFF,
LED_ON,
}led_state_e;
typedef struct{
int temperature;
int pressure; //单位:Pa
}atmos_st;
typedef struct{
int humidity; // 单位:mRH到RH得除以1000
int temperature;//单位:m℃到℃得除以1000
}sht10_st;