关于c:Linux网络开发必学教程24物联网服务模块实现非必要

61次阅读

共计 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);

将来可做的扩大

  • 提供更多不同类型的服务(如,图像采集与辨认服务)
  • 提供设施被动服务模式及服务联动模式
  • 开发手机客户端,通过手机终端应用服务
  • 。。。

正文完
 0