1.修正格式。

This commit is contained in:
MacRsh
2023-12-06 17:19:27 +08:00
parent 884c5045ed
commit b9a8a3c2c3
18 changed files with 259 additions and 111 deletions

View File

@@ -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`:启用通道。

View File

@@ -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`:启用通道。

View File

@@ -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, &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

View File

@@ -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`:获取外部中断回调函数。
### 设置/获取引脚编号

View File

@@ -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"

View File

@@ -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, &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