#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <linux/spi/spidev.h>
#include <sys/ioctl.h>
浏览源代码.
- 日期
- 2024-12-09
- 版权所有
- Copyright (c) 2024
在文件 lib_spi.h 中定义.
SPI_API int set_spi_bits_per_word |
( |
int |
fd, |
|
|
unsigned short |
bits |
|
) |
| |
设置SPI通讯时每个字是多少位
- 参数
-
fd | SPI控制接口的文件描述符 |
bits | 位数,通常是8位 |
- 返回
- int 成功返回0,设置写模式失败则返回-1,读模式失败返回-2。
SPI_API int set_spi_max_transfer_speed |
( |
int |
fd, |
|
|
unsigned int |
speed |
|
) |
| |
设置SPI通讯时最大波特率
- 参数
-
fd | SPI控制接口的文件描述符 |
speed | 通讯时最大波特率,单位是Hz |
- 返回
- int 成功返回0,设置写模式失败则返回-1,读模式失败返回-2。
SPI_API int set_spi_mode |
( |
int |
fd, |
|
|
unsigned short |
mode |
|
) |
| |
设置SPI模式
- 参数
-
fd | SPI控制接口的文件描述符 |
mode | SPI通讯模式 |
- 返回
- int 成功返回0,设置写模式失败则返回-1,读模式失败返回-2。
SPI_API int spi_message_send |
( |
int |
fd, |
|
|
unsigned char * |
sendBuf, |
|
|
int |
len |
|
) |
| |
SPI通讯发送函数
- 参数
-
fd | SPI控制接口的文件描述符 |
sendBuf | 发送缓存区 |
len | 发送缓存区长度 |
- 返回
- int 返回ioctl()函数的返回值,通常失败则返回-1。 可用于发送不需要返回值的命令以及内存写入。
SPI_API 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内存写入数据失败,会将目标内存清零。