1.修正格式。
This commit is contained in:
@@ -62,8 +62,8 @@ int mr_dev_ioctl(int desc, int cmd, void *args);
|
||||
|
||||
- `cmd`:命令码,支持以下命令:
|
||||
- `MR_CTL_ADC_SET_CHANNEL`:设置通道编号。
|
||||
- `MR_CTL_ADC_GET_CHANNEL`:获取通道编号。
|
||||
- `MR_CTL_ADC_SET_CHANNEL_STATE`:设置通道状态。
|
||||
- `MR_CTL_ADC_GET_CHANNEL`:获取通道编号。
|
||||
- `MR_CTL_ADC_GET_CHANNEL_STATE`:获取通道状态。
|
||||
|
||||
### 设置/获取通道编号
|
||||
@@ -85,6 +85,7 @@ mr_dev_ioctl(ds, MR_CTL_ADC_GET_CHANNEL, &number);
|
||||
### 设置/获取通道状态
|
||||
|
||||
通道状态:
|
||||
|
||||
- `MR_ADC_STATE_DISABLE`:禁用通道。
|
||||
- `MR_ADC_STATE_ENABLE`:启用通道。
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@ int mr_dev_ioctl(int desc, int cmd, void *args);
|
||||
|
||||
- `cmd`:命令码,支持以下命令:
|
||||
- `MR_CTL_DAC_SET_CHANNEL`:设置通道编号。
|
||||
- `MR_CTL_DAC_GET_CHANNEL`:获取通道编号。
|
||||
- `MR_CTL_DAC_SET_CHANNEL_STATE`:设置通道状态。
|
||||
- `MR_CTL_DAC_GET_CHANNEL`:获取通道编号。
|
||||
- `MR_CTL_DAC_GET_CHANNEL_STATE`:获取通道状态。
|
||||
|
||||
### 设置/获取通道编号
|
||||
@@ -85,6 +85,7 @@ mr_dev_ioctl(ds, MR_CTL_DAC_GET_CHANNEL, &number);
|
||||
### 设置/获取通道状态
|
||||
|
||||
通道状态:
|
||||
|
||||
- `MR_DAC_STATE_DISABLE`:禁用通道。
|
||||
- `MR_DAC_STATE_ENABLE`:启用通道。
|
||||
|
||||
|
||||
@@ -7,8 +7,10 @@
|
||||
* [关闭I2C设备](#关闭i2c设备)
|
||||
* [控制I2C设备](#控制i2c设备)
|
||||
* [设置/获取I2C设备配置](#设置获取i2c设备配置)
|
||||
* [设置/获取读缓冲区大小](#设置获取读缓冲区大小)
|
||||
* [设置/获取寄存器值](#设置获取寄存器值)
|
||||
* [设置/获取读缓冲区大小](#设置获取读缓冲区大小)
|
||||
* [清空读缓冲区](#清空读缓冲区)
|
||||
* [获取读缓冲区数据大小](#获取读缓冲区数据大小)
|
||||
* [设置/获取读回调函数](#设置获取读回调函数)
|
||||
* [读取I2C设备数据](#读取i2c设备数据)
|
||||
* [写入I2C设备数据](#写入i2c设备数据)
|
||||
@@ -86,12 +88,14 @@ int mr_dev_ioctl(int desc, int cmd, void *args);
|
||||
|
||||
- `cmd`:命令码,支持以下命令:
|
||||
- `MR_CTL_I2C_SET_CONFIG`: 设置I2C设备配置。
|
||||
- `MR_CTL_I2C_GET_CONFIG`: 获取I2C设备配置。
|
||||
- `MR_CTL_I2C_SET_RD_BUFSZ`: 设置读缓冲区大小。
|
||||
- `MR_CTL_I2C_GET_RD_BUFSZ`: 获取读缓冲区大小。
|
||||
- `MR_CTL_I2C_SET_REG`: 设置寄存器值。
|
||||
- `MR_CTL_I2C_GET_REG`: 获取寄存器值。
|
||||
- `MR_CTL_I2C_SET_RD_BUFSZ`: 设置读缓冲区大小。
|
||||
- `MR_CTL_I2C_CLR_RD_BUF`: 清空读缓冲区。
|
||||
- `MR_CTL_I2C_SET_RD_CALL`:设置读回调函数。
|
||||
- `MR_CTL_I2C_GET_CONFIG`: 获取I2C设备配置。
|
||||
- `MR_CTL_I2C_GET_REG`: 获取寄存器值。
|
||||
- `MR_CTL_I2C_GET_RD_BUFSZ`: 获取读缓冲区大小。
|
||||
- `MR_CTL_I2C_GET_RD_DATASZ`: 获取读缓冲区数据大小。
|
||||
- `MR_CTL_I2C_GET_RD_CALL`:获取读回调函数。
|
||||
|
||||
### 设置/获取I2C设备配置
|
||||
@@ -120,19 +124,6 @@ mr_dev_ioctl(ds, MR_CTL_I2C_GET_CONFIG, &config);
|
||||
- 寄存器位数:`MR_I2C_REG_BITS_8`
|
||||
- 当I2C总线上有I2C设备被配置成从机模式后,其将持续占用I2C总线,此时其余I2C设备无法进行读写等操作,直至从机模式I2C设备被重新配置为主机模式。
|
||||
|
||||
### 设置/获取读缓冲区大小
|
||||
|
||||
```c
|
||||
size_t size = 256;
|
||||
|
||||
/* 设置读缓冲区大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_I2C_SET_RD_BUFSZ, &size);
|
||||
/* 获取读缓冲区大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_I2C_GET_RD_BUFSZ, &size);
|
||||
```
|
||||
|
||||
注:如未手动配置,将使用 `Kconfig`中配置的大小(默认为32Byte)。只有在从机模式下才使用读缓冲区。
|
||||
|
||||
### 设置/获取寄存器值
|
||||
|
||||
寄存器值将在读取和写入数据前被优先写入(范围:`0` ~ `INT32_MAX`)。
|
||||
@@ -152,6 +143,34 @@ mr_dev_ioctl(ds, MR_CTL_I2C_GET_REG, ®);
|
||||
- 设为负数时不生效。
|
||||
- 寄存器值不计入读写大小。
|
||||
|
||||
### 设置/获取读缓冲区大小
|
||||
|
||||
```c
|
||||
size_t size = 256;
|
||||
|
||||
/* 设置读缓冲区大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_I2C_SET_RD_BUFSZ, &size);
|
||||
/* 获取读缓冲区大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_I2C_GET_RD_BUFSZ, &size);
|
||||
```
|
||||
|
||||
注:如未手动配置,将使用 `Kconfig`中配置的大小(默认为32Byte)。只有在从机模式下才使用读缓冲区。
|
||||
|
||||
### 清空读缓冲区
|
||||
|
||||
```c
|
||||
mr_dev_ioctl(ds, MR_CTL_I2C_CLR_RD_BUF, MR_NULL);
|
||||
```
|
||||
|
||||
### 获取读缓冲区数据大小
|
||||
|
||||
```c
|
||||
size_t size = 0;
|
||||
|
||||
/* 获取读缓冲区数据大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_I2C_GET_RD_DATASZ, &size);
|
||||
```
|
||||
|
||||
### 设置/获取读回调函数
|
||||
|
||||
```c
|
||||
|
||||
@@ -66,9 +66,9 @@ int mr_dev_ioctl(int desc, int cmd, void *args);
|
||||
|
||||
- `cmd`:命令码,支持以下命令:
|
||||
- `MR_CTL_PIN_SET_NUMBER`:设置引脚编号。
|
||||
- `MR_CTL_PIN_GET_NUMBER`:获取引脚编号。
|
||||
- `MR_CTL_PIN_SET_MODE`:设置引脚模式。
|
||||
- `MR_CTL_PIN_SET_EXTI_CALL`:设置外部中断回调函数。
|
||||
- `MR_CTL_PIN_GET_NUMBER`:获取引脚编号。
|
||||
- `MR_CTL_PIN_GET_EXTI_CALL`:获取外部中断回调函数。
|
||||
|
||||
### 设置/获取引脚编号
|
||||
|
||||
@@ -7,10 +7,12 @@
|
||||
* [控制SERIAL设备](#控制serial设备)
|
||||
* [设置/获取SERIAL设备配置](#设置获取serial设备配置)
|
||||
* [设置/获取读/写缓冲区大小](#设置获取读写缓冲区大小)
|
||||
* [清空读/写缓冲区](#清空读写缓冲区)
|
||||
* [获取读/写缓冲区数据大小](#获取读写缓冲区数据大小)
|
||||
* [设置/获取读/写回调函数](#设置获取读写回调函数)
|
||||
* [读取SERIAL设备数据](#读取serial设备数据)
|
||||
* [写入SERIAL设备数据](#写入serial设备数据)
|
||||
* [使用示例:](#使用示例)
|
||||
* [使用示例](#使用示例)
|
||||
<!-- TOC -->
|
||||
|
||||
## 打开SERIAL设备
|
||||
@@ -61,15 +63,19 @@ int mr_dev_ioctl(int desc, int cmd, void *args);
|
||||
| `<0` | 错误码 |
|
||||
|
||||
- `cmd`:命令码,支持以下命令:
|
||||
- `MR_CTL_SERIAL_SET_CONFIG`: 设置SERIAL设备配置。
|
||||
- `MR_CTL_SERIAL_GET_CONFIG`: 获取SERIAL设备配置。
|
||||
- `MR_CTL_SERIAL_SET_RD_BUFSZ`: 设置读缓冲区大小。
|
||||
- `MR_CTL_SERIAL_GET_RD_BUFSZ`: 获取读缓冲区大小。
|
||||
- `MR_CTL_SERIAL_SET_WR_BUFSZ`: 设置写缓冲区大小。
|
||||
- `MR_CTL_SERIAL_GET_WR_BUFSZ`: 获取写缓冲区大小。
|
||||
- `MR_CTL_SERIAL_SET_CONFIG`:设置SERIAL设备配置。
|
||||
- `MR_CTL_SERIAL_SET_RD_BUFSZ`:设置读缓冲区大小。
|
||||
- `MR_CTL_SERIAL_SET_WR_BUFSZ`:设置写缓冲区大小。
|
||||
- `MR_CTL_SERIAL_CLR_RD_BUF`:清空读缓冲区。
|
||||
- `MR_CTL_SERIAL_CLR_WR_BUF`:清空写缓冲区。
|
||||
- `MR_CTL_SERIAL_SET_RD_CALL`:设置读回调函数。
|
||||
- `MR_CTL_SERIAL_GET_RD_CALL`:获取读回调函数。
|
||||
- `MR_CTL_SERIAL_SET_WR_CALL`:设置写回调函数。
|
||||
- `MR_CTL_SERIAL_GET_CONFIG`:获取SERIAL设备配置。
|
||||
- `MR_CTL_SERIAL_GET_RD_BUFSZ`:获取读缓冲区大小。
|
||||
- `MR_CTL_SERIAL_GET_WR_BUFSZ`:获取写缓冲区大小。
|
||||
- `MR_CTL_SERIAL_GET_RD_DATASZ`:获取读缓冲区数据大小。
|
||||
- `MR_CTL_SERIAL_GET_WR_DATASZ`:获取写缓冲区数据大小。
|
||||
- `MR_CTL_SERIAL_GET_RD_CALL`:获取读回调函数。
|
||||
- `MR_CTL_SERIAL_GET_WR_CALL`:获取写回调函数。
|
||||
|
||||
### 设置/获取SERIAL设备配置
|
||||
@@ -120,18 +126,37 @@ mr_dev_ioctl(ds, MR_CTL_SERIAL_GET_WR_BUFSZ, &size);
|
||||
|
||||
注:如未手动配置,将使用 `Kconfig`中配置的大小(默认为32Byte)。
|
||||
|
||||
### 清空读/写缓冲区
|
||||
|
||||
```c
|
||||
mr_dev_ioctl(ds, MR_CTL_SERIAL_CLR_RD_BUF, MR_NULL);
|
||||
mr_dev_ioctl(ds, MR_CTL_SERIAL_CLR_WR_BUF, MR_NULL);
|
||||
```
|
||||
|
||||
### 获取读/写缓冲区数据大小
|
||||
|
||||
```c
|
||||
size_t size = 0;
|
||||
|
||||
/* 获取读缓冲区数据大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_SERIAL_GET_RD_DATASZ, &size);
|
||||
|
||||
/* 获取写缓冲区数据大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_SERIAL_GET_WR_DATASZ, &size);
|
||||
```
|
||||
|
||||
### 设置/获取读/写回调函数
|
||||
|
||||
```c
|
||||
/* 定义回调函数 */
|
||||
int call(int desc, void *args)
|
||||
{
|
||||
/* 获取缓冲区数据大小 */
|
||||
ssize_t data_size = *(ssize_t *)args;
|
||||
|
||||
/* 处理中断 */
|
||||
|
||||
return MR_EOK;
|
||||
/* 获取缓冲区数据大小 */
|
||||
ssize_t data_size = *(ssize_t *)args;
|
||||
|
||||
/* 处理中断 */
|
||||
|
||||
return MR_EOK;
|
||||
}
|
||||
int (*callback)(int, void *args);
|
||||
|
||||
@@ -204,7 +229,7 @@ if (size < 0)
|
||||
当设置写缓冲区后会将数据写入写缓冲区(返回实际写入的数据大小),通过中断或DMA异步发送数据,发送完成后会触发写回调函数。
|
||||
当有数据在异步发送时,写入锁将自动上锁,此时无法同步写入,直至异步发送完成。
|
||||
|
||||
## 使用示例:
|
||||
## 使用示例
|
||||
|
||||
```c
|
||||
#include "include/mr_lib.h"
|
||||
|
||||
@@ -7,8 +7,10 @@
|
||||
* [关闭SPI设备](#关闭spi设备)
|
||||
* [控制SPI设备](#控制spi设备)
|
||||
* [设置/获取SPI设备配置](#设置获取spi设备配置)
|
||||
* [设置/获取读缓冲区大小](#设置获取读缓冲区大小)
|
||||
* [设置/获取寄存器值](#设置获取寄存器值)
|
||||
* [设置/获取读缓冲区大小](#设置获取读缓冲区大小)
|
||||
* [清空读缓冲区](#清空读缓冲区)
|
||||
* [获取读缓冲区数据大小](#获取读缓冲区数据大小)
|
||||
* [设置/获取读回调函数](#设置获取读回调函数)
|
||||
* [全双工传输](#全双工传输)
|
||||
* [读取SPI设备数据](#读取spi设备数据)
|
||||
@@ -87,15 +89,17 @@ int mr_dev_ioctl(int desc, int cmd, void *args);
|
||||
| `<0` | 错误码 |
|
||||
|
||||
- `cmd`:命令码,支持以下命令:
|
||||
- `MR_CTL_SPI_SET_CONFIG`: 设置SPI设备配置。
|
||||
- `MR_CTL_SPI_GET_CONFIG`: 获取SPI设备配置。
|
||||
- `MR_CTL_SPI_SET_RD_BUFSZ`: 设置读缓冲区大小。
|
||||
- `MR_CTL_SPI_GET_RD_BUFSZ`: 获取读缓冲区大小。
|
||||
- `MR_CTL_SPI_SET_REG`: 设置寄存器值。
|
||||
- `MR_CTL_SPI_GET_REG`: 获取寄存器值。
|
||||
- `MR_CTL_SPI_SET_CONFIG`:设置SPI设备配置。
|
||||
- `MR_CTL_SPI_SET_REG`:设置寄存器值。
|
||||
- `MR_CTL_SPI_SET_RD_BUFSZ`:设置读缓冲区大小。
|
||||
- `MR_CTL_SPI_CLR_RD_BUF`:清空读缓冲区。
|
||||
- `MR_CTL_SPI_SET_RD_CALL`:设置读回调函数。
|
||||
- `MR_CTL_SPI_GET_RD_CALL`:获取读回调函数。
|
||||
- `MR_CTL_SPI_TRANSFER`:全双工传输。
|
||||
- `MR_CTL_SPI_GET_CONFIG`:获取SPI设备配置。
|
||||
- `MR_CTL_SPI_GET_REG`:获取寄存器值。
|
||||
- `MR_CTL_SPI_GET_RD_BUFSZ`:获取读缓冲区大小。
|
||||
- `MR_CTL_SPI_GET_RD_DATASZ`:获取读缓冲区数据大小。
|
||||
- `MR_CTL_SPI_GET_RD_CALL`:获取读回调函数。
|
||||
|
||||
### 设置/获取SPI设备配置
|
||||
|
||||
@@ -129,19 +133,6 @@ mr_dev_ioctl(ds, MR_CTL_SPI_GET_CONFIG, &config);
|
||||
- 寄存器位数:`MR_SPI_REG_BITS_8`
|
||||
- 当SPI总线上有SPI设备被配置成从机模式后,其将持续占用SPI总线,此时其余SPI设备无法进行读写等操作,直至从机模式SPI设备被重新配置为主机模式。
|
||||
|
||||
### 设置/获取读缓冲区大小
|
||||
|
||||
```c
|
||||
size_t size = 256;
|
||||
|
||||
/* 设置读缓冲区大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_SPI_SET_RD_BUFSZ, &size);
|
||||
/* 获取读缓冲区大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_SPI_GET_RD_BUFSZ, &size);
|
||||
```
|
||||
|
||||
注:如未手动配置,将使用 `Kconfig`中配置的大小(默认为32Byte)。只有在从机模式下才使用读缓冲区。
|
||||
|
||||
### 设置/获取寄存器值
|
||||
|
||||
寄存器值将在读取和写入数据前被优先写入(范围:`0` ~ `INT32_MAX`)。
|
||||
@@ -161,6 +152,34 @@ mr_dev_ioctl(ds, MR_CTL_SPI_GET_REG, ®);
|
||||
- 设为负数时不生效。
|
||||
- 寄存器值不计入读写大小。
|
||||
|
||||
### 设置/获取读缓冲区大小
|
||||
|
||||
```c
|
||||
size_t size = 256;
|
||||
|
||||
/* 设置读缓冲区大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_SPI_SET_RD_BUFSZ, &size);
|
||||
/* 获取读缓冲区大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_SPI_GET_RD_BUFSZ, &size);
|
||||
```
|
||||
|
||||
注:如未手动配置,将使用 `Kconfig`中配置的大小(默认为32Byte)。只有在从机模式下才使用读缓冲区。
|
||||
|
||||
### 清空读缓冲区
|
||||
|
||||
```c
|
||||
mr_dev_ioctl(ds, MR_CTL_SPI_CLR_RD_BUF, MR_NULL);
|
||||
```
|
||||
|
||||
### 获取读缓冲区数据大小
|
||||
|
||||
```c
|
||||
size_t size = 0;
|
||||
|
||||
/* 获取读缓冲区数据大小 */
|
||||
mr_dev_ioctl(ds, MR_CTL_SPI_GET_RD_DATASZ, &size);
|
||||
```
|
||||
|
||||
### 设置/获取读回调函数
|
||||
|
||||
```c
|
||||
|
||||
Reference in New Issue
Block a user