Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
51d86e4b
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
51d86e4b
编写于
5月 09, 2022
作者:
K
king_he
提交者:
Gitee
5月 09, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/device-dev/driver/driver-platform-spi-des.md.
Signed-off-by:
N
king_he
<
6384784@qq.com
>
上级
f7c9bd6f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
50 addition
and
46 deletion
+50
-46
zh-cn/device-dev/driver/driver-platform-spi-des.md
zh-cn/device-dev/driver/driver-platform-spi-des.md
+50
-46
未找到文件。
zh-cn/device-dev/driver/driver-platform-spi-des.md
浏览文件 @
51d86e4b
...
...
@@ -3,17 +3,17 @@
## 概述
-
SPI是串行外设接口(Serial Peripheral Interface)的缩写
,是一种高速的,全双工,同步的通信总线。
SPI指串行外设接口(Serial Peripheral Interface)
,是一种高速的,全双工,同步的通信总线。
-
SPI是由Motorola公司开发,用于在主设备和从设备之间进行通信,常用于与闪存、实时时钟、传感器以及模数转换器等进行通信。
SPI是由Motorola公司开发,用于在主设备和从设备之间进行通信,常用于与闪存、实时时钟、传感器以及模数转换器等进行通信。
-
SPI以主从方式工作,通常有一个主设备和一个或者多个从设备。主设备和从设备之间一般用4根线相连,它们分别是:
-
SCLK
–
时钟信号,由主设备产生;
-
MOSI
–
主设备数据输出,从设备数据输入;
-
MISO
–
主设备数据输入,从设备数据输出;
-
CS
–
片选,从设备使能信号,由主设备控制。
SPI以主从方式工作,通常有一个主设备和一个或者多个从设备。主设备和从设备之间一般用4根线相连,它们分别是:
-
SCLK
:
时钟信号,由主设备产生;
-
MOSI
:
主设备数据输出,从设备数据输入;
-
MISO
:
主设备数据输入,从设备数据输出;
-
CS
:
片选,从设备使能信号,由主设备控制。
-
一个主设备和两个从设备的连接示意图如下所示,Device A和Device B共享主设备的SCLK、MISO和MOSI三根引脚,Device A的片选CS0连接主设备的CS0,Device B的片选CS1连接主设备的CS1。
一个主设备和两个从设备的连接示意图如下所示,Device A和Device B共享主设备的SCLK、MISO和MOSI三根引脚,Device A的片选CS0连接主设备的CS0,Device B的片选CS1连接主设备的CS1。
**图1**
SPI主从设备连接示意图
...
...
@@ -32,11 +32,11 @@
-
SPI接口定义了操作SPI设备的通用方法集合,包括:
-
SPI设备句柄获取和释放。
-
SPI读写:
从SPI设备读取或写入指定长度数据。
-
SPI读写: 从SPI设备读取或写入指定长度数据。
-
SPI自定义传输:通过消息传输结构体执行任意读写组合过程。
-
SPI设备配置:获取和设置SPI设备属性。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
<br>
> 当前只支持主机模式,不支持从机模式。
...
...
@@ -44,13 +44,17 @@
**表1**
SPI驱动API接口功能介绍
|
功能分类 | 接口名
|
|
接口名 | 接口描述
|
| -------- | -------- |
| SPI设备句柄获取释放接口 | -
SpiOpen:获取SPI设备句柄
<br/>
-
SpiClose:释放SPI设备句柄 |
| SPI读写接口 | -
SpiRead:读取指定长度的数据
<br/>
-
SpiWrite:写入指定长度的数据
<br/>
-
SpiTransfer:SPI数据传输接口 |
| SPI设备配置接口 | -
SpiSetCfg:根据指定参数,配置SPI设备
<br/>
-
SpiGetCfg:获取SPI设备配置参数 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
| SpiOpen | 获取SPI设备句柄 |
| SpiClose | 释放SPI设备句柄 |
| SpiRead | 读取指定长度的数据 |
| SpiWrite | 写入指定长度的数据 |
| SpiTransfer | SPI数据传输接口 |
| SpiSetCfg | 根据指定参数,配置SPI设备 |
| SpiGetCfg | 获取SPI设备配置参数 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**<br>
> 本文涉及的所有接口,仅限内核态使用,不支持在用户态使用。
...
...
@@ -79,10 +83,10 @@ DevHandle SpiOpen(const struct SpiDevInfo *info);
|
**参数**
|
**参数描述**
|
| -------- | -------- |
| info
| SPI设备描述符
|
|
**返回值**
|
**返回值描述**
|
| NULL
| 获取SPI设备句柄失败 |
| 设备句柄
| 对应的SPI设备句柄
|
| info
| SPI设备描述符
|
|
**返回值**
|
**返回值描述**
|
| NULL | 获取SPI设备句柄失败 |
| 设备句柄
| 对应的SPI设备句柄
|
假设系统中的SPI设备总线号为0,片选号为0,获取该SPI设备句柄的示例如下:
...
...
@@ -115,11 +119,11 @@ int32_t SpiGetCfg(DevHandle handle, struct SpiCfg *cfg);
|
**参数**
|
**参数描述**
|
| -------- | -------- |
| handle | SPI设备句柄
|
| handle | SPI设备句柄 |
| cfg | SPI设备配置参数 |
|
**返回值**
|
**返回值描述**
|
| 0 | 获取配置成功
|
| 负数 | 获取配置失败
|
|
**返回值**
|
**返回值描述**
|
| 0 | 获取配置成功 |
| 负数 | 获取配置失败 |
```
...
...
@@ -145,11 +149,11 @@ int32_t SpiSetCfg(DevHandle handle, struct SpiCfg *cfg);
|
**参数**
|
**参数描述**
|
| -------- | -------- |
| handle | SPI设备句柄
|
| handle | SPI设备句柄 |
| cfg | SPI设备配置参数 |
|
**返回值**
|
**返回值描述**
|
| 0 | 配置成功
|
| 负数 | 配置失败
|
|
**返回值**
|
**返回值描述**
|
| 0 | 配置成功 |
| 负数 | 配置失败 |
```
...
...
@@ -181,12 +185,12 @@ if (ret != 0) {
|
**参数**
|
**参数描述**
|
| -------- | -------- |
| handle | SPI设备句柄
|
| handle | SPI设备句柄 |
| buf | 待写入数据的指针 |
| len | 待写入的数据长度 |
|
**返回值**
|
**返回值描述**
|
| 0 | 写入成功
|
| 负数 | 写入失败
|
|
**返回值**
|
**返回值描述**
|
| 0 | 写入成功 |
| 负数 | 写入失败 |
```
...
...
@@ -212,12 +216,12 @@ if (ret != 0) {
|
**参数**
|
**参数描述**
|
| -------- | -------- |
| handle
| SPI设备句柄
|
| buf
| 待读取数据的指针 |
| len
| 待读取的数据长度 |
|
**返回值**
|
**返回值描述**
|
| 0
| 读取成功
|
| 负数
| 读取失败
|
| handle
| SPI设备句柄
|
| buf | 待读取数据的指针 |
| len | 待读取的数据长度 |
|
**返回值**
|
**返回值描述**
|
| 0
| 读取成功
|
| 负数
| 读取失败
|
```
...
...
@@ -243,19 +247,19 @@ if (ret != 0) {
|
**参数**
|
**参数描述**
|
| -------- | -------- |
| handle
| SPI设备句柄
|
| msgs
| 待传输数据的数组 |
| count
| msgs数组长度
|
|
**返回值**
|
**返回值描述**
|
| 0
| 执行成功
|
| 负数
| 执行失败
|
| handle
| SPI设备句柄
|
| msgs | 待传输数据的数组 |
| count
| msgs数组长度
|
|
**返回值**
|
**返回值描述**
|
| 0
| 执行成功
|
| 负数
| 执行失败
|
```
int32_t ret;
uint8_t wbuff[1] = {0x12};
uint8_t rbuff[1] = {0};
struct SpiMsg msg; /* 自定义传输的消息*/
struct SpiMsg msg; /* 自定义传输的消息
*/
msg.wbuf = wbuff; /* 写入的数据 */
msg.rbuf = rbuff; /* 读取的数据 */
msg.len = 1; /* 读取、写入数据的长度都是1 */
...
...
@@ -285,7 +289,7 @@ void SpiClose(DevHandle handle);
|
**参数**
|
**参数描述**
|
| -------- | -------- |
| handle
| SPI设备句柄
|
| handle
| SPI设备句柄
|
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录