共计 1279 个字符,预计需要花费 4 分钟才能阅读完成。
笔者无对应硬件开发板,对波及硬件操作局部的代码不做全副开展。(不影响主线了解)
问题:服务模块如何获取实在环境信息?
外设简介
设施驱动开发根底
-
GPIO
- GPIO 即:General-Purpose Input/Output, 通用型输入输出
- 在硬件设施上,GPIO 通常体现为引脚(Pin), 输入为高电平或低电平
- 程序设计中,可通过代码管制指定 GPIO 的输入,或接管内部输出
- GPIO 是硬件与外部设备的接口,罕用于对外部设备进行管制
- GPIO 信号输入
当 GPIO 作为输入应用时,输入的电信号为高电平(1)或着低电平(0), 因而,只有在电路上稍加设计就能够接入外设(如:LED,电动机,等),并通过程序控制外设的状态
GPIO 利用形式
-
根底性能
- 仅应用 GPIO 引脚性能对外输入管制信息(0 或 1)
-
复用性能
- 通过 GPIO 根底性能实现的通信形式(如:I2C)
GPIO 根底性能示例
#include "iot_gpio.h" | |
#include "hi_io.h" | |
IoTGpioInit(14); | |
IoTGpioSetFunc(14, HI_IO_FUNC_GPIO_14_GPIO); | |
IoTGpioSetDir(14, HI_GPIO_DIR_OUT); |
int Service_SetLight(int on) | |
{return (IotGpioSetOutputVal(14, on) == 0); | |
} |
什么是 I2C?
- I2C 即:inter – integrated Circuit, 一种两线式串行总线
- I2C 罕用于链接微信控制器及其外围设备(如:用于连贯传感器)
-
I2C 可通过两个 GPIO 引脚实现物理连贯及数据通讯
- 如:
- GPIO0 对应 I2C_SDA : I2C 数据传输线
- GPIO1 对应 I2C_SCL : I2C 时钟信号线
深入浅出 I2C 通信
- I2C 总线上能够挂载一个设施和多个从设施
- 主设施负责调度总线,决定某个工夫和其中一个从设施通信
- 每个从设施在 I2C 总线上都有惟一的地址
- 主设施寻址时,8 位数据中高 7 位是从设施地址,最低位示意读写
- 每次数据通讯,主从设施之间都会发送起始和完结信号
大道至简:对于 I2C 利用的了解
- I2C 的实质是两根对于数据传输的连线(微控制器 <–> 传感器)
- I2C 编程是非凡的 GPIO 编程(GPIO 配置后进行数据读写)
- 开发板上的 I2C 与集成外设固定连贯(如:温湿度传感器)
- I2C 利用的终极体现只是简略的数据读写
I2C 利用示例
uint8_t send_data[1] = {0}; | |
send_data[0] = 0x01; | |
IoTI2CWrite(1, (BH175_Addr<<1)|0x00, send_data, 1); | |
usleep(100000); | |
send_data[0] = 0x10; | |
IoTI2CWrite(1, (BH175_Addr<<1)|0x00, send_data, 1); | |
uin8_t recv_data[6] = {0}; | |
IoTI2CRead(1, (BH175_Addr<<1)|0x01, recv_data, 2); |
将来可做的扩大
- 提供更多不同类型的服务(如,图像采集与辨认服务)
- 提供设施被动服务模式及服务联动模式
- 开发手机客户端,通过手机终端应用服务
- 。。。
正文完