未验证 提交 ce1ee779 编写于 作者: K king_he 提交者: Gitee

update zh-cn/device-dev/driver/driver-platform-i2c-des.md.

Signed-off-by: Nking_he <6384784@qq.com>
上级 e9bfd639
...@@ -3,17 +3,17 @@ ...@@ -3,17 +3,17 @@
## 概述 ## 概述
- I2C(Inter Integrated Circuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。 I2C(Inter Integrated Circuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。
- I2C以主从方式工作,通常有一个主设备和一个或者多个从设备,主从设备通过SDA(SerialData)串行数据线以及SCL(SerialClock)串行时钟线两根线相连,如图1所示。 I2C以主从方式工作,通常有一个主设备和一个或者多个从设备,主从设备通过SDA(SerialData)串行数据线以及SCL(SerialClock)串行时钟线两根线相连,如图1所示。
- I2C数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。数据传输以字节为单位,高位在前,逐个bit进行传输。 I2C数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。数据传输以字节为单位,高位在前,逐个bit进行传输。
- I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址,当主设备需要和某一个从设备通信时,通过广播的方式,将从设备地址写到总线上,如果某个从设备符合此地址,将会发出应答信号,建立传输。 I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址,当主设备需要和某一个从设备通信时,通过广播的方式,将从设备地址写到总线上,如果某个从设备符合此地址,将会发出应答信号,建立传输。
- I2C接口定义了完成I2C传输的通用方法集合,包括: I2C接口定义了完成I2C传输的通用方法集合,包括:
- I2C控制器管理: 打开或关闭I2C控制器 - I2C控制器管理:打开或关闭I2C控制器
- I2C消息传输:通过消息传输结构体数组进行自定义传输 - I2C消息传输:通过消息传输结构体数组进行自定义传输
**图1** I2C物理连线示意图 **图1** I2C物理连线示意图
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
| I2C控制器管理接口 | -&nbsp;I2cOpen:打开I2C控制器<br/>-&nbsp;I2cClose:关闭I2C控制器 | | I2C控制器管理接口 | -&nbsp;I2cOpen:打开I2C控制器<br/>-&nbsp;I2cClose:关闭I2C控制器 |
| I2C消息传输接口 | I2cTransfer:自定义传输 | | I2C消息传输接口 | I2cTransfer:自定义传输 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br>
> 本文涉及的所有接口,仅限内核态使用,不支持在用户态使用。 > 本文涉及的所有接口,仅限内核态使用,不支持在用户态使用。
...@@ -60,7 +60,7 @@ DevHandle I2cOpen(int16_t number); ...@@ -60,7 +60,7 @@ DevHandle I2cOpen(int16_t number);
| NULL | 打开I2C控制器失败 | | NULL | 打开I2C控制器失败 |
| 设备句柄 | 打开的I2C控制器设备句柄 | | 设备句柄 | 打开的I2C控制器设备句柄 |
假设系统中存在8个I2C控制器,编号从0到7,那么我们现在获取3号控制器 假设系统中存在8个I2C控制器,编号从0到7,以下代码示例为获取3号控制器:
``` ```
...@@ -128,7 +128,7 @@ if (ret != 2) { ...@@ -128,7 +128,7 @@ if (ret != 2) {
### 关闭I2C控制器 ### 关闭I2C控制器
I2C通信完成之后,需要关闭I2C控制器,关闭函数如下所 I2C通信完成之后,需要关闭I2C控制器,关闭函数如下所
void I2cClose(DevHandle handle); void I2cClose(DevHandle handle);
...@@ -144,7 +144,7 @@ I2cClose(i2cHandle); /* 关闭I2C控制器 */ ...@@ -144,7 +144,7 @@ I2cClose(i2cHandle); /* 关闭I2C控制器 */
``` ```
## 使用 ## 使用
本例程以操作开发板上的I2C设备为例,详细展示I2C接口的完整使用流程。 本例程以操作开发板上的I2C设备为例,详细展示I2C接口的完整使用流程。
...@@ -158,8 +158,8 @@ I2cClose(i2cHandle); /* 关闭I2C控制器 */ ...@@ -158,8 +158,8 @@ I2cClose(i2cHandle); /* 关闭I2C控制器 */
本例程首先对Touch IC进行复位操作(开发板上电默认会给TouchIC供电,本例程不考虑供电),然后对其内部寄存器进行随机读写,测试I2C通路是否正常。 本例程首先对Touch IC进行复位操作(开发板上电默认会给TouchIC供电,本例程不考虑供电),然后对其内部寄存器进行随机读写,测试I2C通路是否正常。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br>
> 本例程重点在于展示I2C设备访问流程,并验证I2C通路,所以对于设备寄存器读写值不做关注,读写寄存器导致的行为由设备自身决定。 > 本示例重点在于展示I2C设备访问流程,并验证I2C通路,所以对于设备寄存器读写值不做关注,读写寄存器导致的行为由设备自身决定。
示例如下: 示例如下:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册