#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <linux/spi/spidev.h>
#include <sys/ioctl.h>
浏览源代码.
- 作者
- owen (ouzij.nosp@m.ian@.nosp@m.embed.nosp@m.sky..nosp@m.net)
- 版本
- 1.0
- 日期
- 2021-09-17
- 版权所有
- Copyright (c) 2023 广州省天嵌嵌入式技术股份有限公司
- 修改日志:
Date | Version | Author | Description |
2021-09-18 | 1.0 | owen | 第一次发布,封装了linux系统下对I2C的读写操作 |
int set_spi_bits_per_word |
( |
int |
fd, |
|
|
unsigned short |
bits |
|
) |
| |
设置SPI通讯时每个字是多少位
- 参数
-
fd | SPI控制接口的文件描述符 |
bits | 位数,通常是8位 |
- 返回
- int 成功返回0,设置写模式失败则返回-1,读模式失败返回-2。
int set_spi_max_transfer_speed |
( |
int |
fd, |
|
|
unsigned int |
speed |
|
) |
| |
设置SPI通讯时最大波特率
- 参数
-
fd | SPI控制接口的文件描述符 |
speed | 通讯时最大波特率,单位是Hz |
- 返回
- int 成功返回0,设置写模式失败则返回-1,读模式失败返回-2。
int set_spi_mode |
( |
int |
fd, |
|
|
unsigned short |
mode |
|
) |
| |
设置SPI模式
- 参数
-
fd | SPI控制接口的文件描述符 |
mode | SPI通讯模式 |
- 返回
- int 成功返回0,设置写模式失败则返回-1,读模式失败返回-2。
int spi_message_send |
( |
int |
fd, |
|
|
unsigned char * |
sendBuf, |
|
|
int |
len |
|
) |
| |
SPI通讯发送函数
- 参数
-
fd | SPI控制接口的文件描述符 |
sendBuf | 发送缓存区 |
len | 发送缓存区长度 |
- 返回
- int 返回ioctl()函数的返回值,通常失败则返回-1。 可用于发送不需要返回值的命令以及内存写入。
int spi_message_transfer |
( |
int |
fd, |
|
|
unsigned char * |
sendBuf, |
|
|
int |
send_len, |
|
|
unsigned char * |
recvBuf, |
|
|
int |
recv_len |
|
) |
| |
全双工SPI通讯函数,能同时收发
- 参数
-
fd | SPI控制接口的文件描述符 |
sendBuf | 发送缓存区 |
send_len | 发送缓存区长度 |
recvBuf | 接收缓存区 |
recv_len | 接收缓存区长度 |
- 返回
- int 返回ioctl()函数的返回值,通常失败则返回-1。 全双工通讯函数,能同时收发。但在实际操作过程中发现在使用该函数对SPI FLASH内存写入数据失败,会将目标内存清零。