diff --git a/document/user/device/adc.md b/document/user/device/adc.md index 61fcaa0..44454c7 100644 --- a/document/user/device/adc.md +++ b/document/user/device/adc.md @@ -8,24 +8,23 @@ ADC(模数转换器)是一种可以将连续的模拟信号转换为离散 ---------- -## 准备工作 +## 准备 -1. 引用 `mrdrv.h` 头文件以使用驱动部分。 -2. 调用ADC设备初始化函数(如果实现了自动初始化,则无需调用)。 -3. 使能 `mrconfig.h` 头文件中ADC宏开关。 +1. 调用ADC设备初始化函数(如果实现了自动初始化,则无需调用)。 +2. 使能 `mrconfig.h` 头文件中ADC宏开关。 ---------- ## 调用关系 -![调用关系](https://gitee.com/MacRsh/mr-library/raw/master/document/resource/adc_device.png) +![调用关系](https://gitee.com/MacRsh/mr-library/raw/develop/document/resource/adc_device.png) ---------- ## 查找ADC设备 ```c -mr_device_t mr_device_find(const char *name); +mr_device_t mr_device_find(const char *name); ``` | 参数 | 描述 | @@ -40,21 +39,21 @@ mr_device_t mr_device_find(const char *name); ## 打开ADC设备 ```c -mr_err_t mr_device_open(mr_device_t device, mr_uint16_t flags); +mr_err_t mr_device_open(mr_device_t device, mr_uint8_t oflags); ``` -| 参数 | 描述 | -|:----------|:--------| -| device | ADC设备句柄 | -| flags | 打开方式 | -| **返回** | | -| MR_ERR_OK | 打开设备成功 | -| 错误码 | 打开设备失败 | +| 参数 | 描述 | +|:----------|:-------| +| device | ADC设备 | +| oflags | 打开方式 | +| **返回** | | +| MR_ERR_OK | 打开设备成功 | +| 错误码 | 打开设备失败 | ADC设备支持以下打开方式: ```c -MR_OPEN_RDONLY /* 只读 */ +MR_DEVICE_OFLAG_RDONLY /* 只读 */ ``` ---------- @@ -65,20 +64,20 @@ MR_OPEN_RDONLY /* 只读 */ mr_err_t mr_device_ioctl(mr_device_t device, int cmd, void *args); ``` -| 参数 | 描述 | -|:----------|:--------| -| device | ADC设备句柄 | -| cmd | 控制命令 | -| args | 控制参数 | -| **返回** | | -| MR_ERR_OK | 控制设备成功 | -| 错误码 | 控制设备失败 | +| 参数 | 描述 | +|:----------|:-------| +| device | ADC设备 | +| cmd | 控制命令 | +| args | 控制参数 | +| **返回** | | +| MR_ERR_OK | 控制设备成功 | +| 错误码 | 控制设备失败 | ADC设备支持以下命令: ```c -MR_CTRL_SET_CONFIG /* 设置参数 */ -MR_CTRL_GET_CONFIG /* 获取参数 */ +MR_DEVICE_CTRL_SET_CONFIG /* 设置参数 */ +MR_DEVICE_CTRL_GET_CONFIG /* 获取参数 */ ``` ### 设置ADC设备通道 @@ -106,15 +105,15 @@ MR_ENABLE 1 /* 使能通 mr_device_t adc_device = mr_device_find("adc1"); /* 以只读方式打开 */ -mr_device_open(adc_device, MR_OPEN_RDONLY); +mr_device_open(adc_device, MR_DEVICE_OFLAG_RDONLY); /* 获取参数 */ struct mr_adc_config adc_config; -mr_device_ioctl(adc_device, MR_CTRL_GET_CONFIG, &adc_config); +mr_device_ioctl(adc_device, MR_DEVICE_CTRL_GET_CONFIG, &adc_config); /* 使能通道5 */ adc_config.channel.ch5 = MR_ENABLE; -mr_device_ioctl(adc_device, MR_CTRL_SET_CONFIG, &adc_config); +mr_device_ioctl(adc_device, MR_DEVICE_CTRL_SET_CONFIG, &adc_config); ``` ---------- @@ -122,22 +121,20 @@ mr_device_ioctl(adc_device, MR_CTRL_SET_CONFIG, &adc_config); ## 读取ADC设备通道输入值 ```c -mr_ssize_t mr_device_read(mr_device_t device, mr_pos_t pos, const void *buffer, mr_size_t size); +mr_ssize_t mr_device_read(mr_device_t device, mr_off_t pos, void *buffer, mr_size_t size); ``` -| 参数 | 描述 | -|:----------|:--------| -| device | ADC设备句柄 | -| pos | 读取位置 | -| buffer | 读取数据地址 | -| size | 读取数据大小 | -| **返回** | | -| 实际读取的数据大小 | | +| 参数 | 描述 | +|:----------|:-------| +| device | ADC设备 | +| pos | 读取位置 | +| buffer | 读取数据地址 | +| size | 读取数据大小 | +| **返回** | | +| 实际读取的数据大小 | | -- 读取位置:需要读取数据的通道。 -- 读取数据:ADC设备采集的输入值。 - -ADC设备数据为uint32格式。 +- 读取位置:需要读取数据的通道,有效范围:0-31。 +- 读取数据:ADC设备采集的输入值,类型为:uint32。 使用示例: @@ -148,12 +145,12 @@ ADC设备数据为uint32格式。 mr_device_t adc_device = mr_device_find("adc1"); /* 以只读方式打开 */ -mr_device_open(adc_device, MR_OPEN_RDONLY); +mr_device_open(adc_device, MR_DEVICE_OFLAG_RDONLY); /* 使能通道5 */ struct mr_adc_config adc_config; adc_config.channel.ch5 = MR_ENABLE; -mr_device_ioctl(adc_device, MR_CTRL_SET_CONFIG, &adc_config); +mr_device_ioctl(adc_device, MR_DEVICE_CTRL_SET_CONFIG, &adc_config); /* 读取通道5输入值 */ mr_uint32_t adc_value = 0; diff --git a/document/user/device/dac.md b/document/user/device/dac.md index dcccd6f..9bd3c01 100644 --- a/document/user/device/dac.md +++ b/document/user/device/dac.md @@ -8,17 +8,16 @@ DAC(数模转换器)是一种可以将离散数字信号转换为连续模 ---------- -## 准备工作 +## 准备 -1. 引用 `mrdrv.h` 头文件以使用驱动部分。 -2. 调用DAC设备初始化函数(如果实现了自动初始化,则无需调用)。 -3. 使能 `mrconfig.h` 头文件中DAC宏开关。 +1. 调用DAC设备初始化函数(如果实现了自动初始化,则无需调用)。 +2. 使能 `mrconfig.h` 头文件中DAC宏开关。 ---------- ## 调用关系 -![调用关系](https://gitee.com/MacRsh/mr-library/raw/master/document/resource/dac_device.png) +![调用关系](https://gitee.com/MacRsh/mr-library/raw/develop/document/resource/dac_device.png) ---------- @@ -32,7 +31,7 @@ mr_device_t mr_device_find(const char *name); |:--------|:-------| | name | DAC设备名 | | **返回** | | -| DAC句柄 | 查找设备成功 | +| DAC | 查找设备成功 | | MR_NULL | 查找设备失败 | ---------- @@ -40,21 +39,21 @@ mr_device_t mr_device_find(const char *name); ## 打开DAC设备 ```c -mr_err_t mr_device_open(mr_device_t device, mr_uint16_t flags); +mr_err_t mr_device_open(mr_device_t device, mr_uint8_t oflags); ``` -| 参数 | 描述 | -|:----------|:--------| -| device | DAC设备句柄 | -| flags | 打开方式 | -| **返回** | | -| MR_ERR_OK | 打开设备成功 | -| 错误码 | 打开设备失败 | +| 参数 | 描述 | +|:------------|:-------| +| device | DAC设备 | +| oflags | 打开方式 | +| **返回** | | +| MR_ERR_OK | 打开设备成功 | +| 错误码 | 打开设备失败 | DAC设备支持以下打开方式: ```c -MR_OPEN_WRONLY /* 只写 */ +MR_DEVICE_OFLAG_WRONLY /* 只写 */ ``` ---------- @@ -67,7 +66,7 @@ mr_err_t mr_device_ioctl(mr_device_t device, int cmd, void *args); | 参数 | 描述 | |:----------|:--------| -| device | DAC设备句柄 | +| device | DAC设备 | | cmd | 控制命令 | | args | 控制参数 | | **返回** | | @@ -77,8 +76,8 @@ mr_err_t mr_device_ioctl(mr_device_t device, int cmd, void *args); DAC设备支持以下命令: ```c -MR_CTRL_SET_CONFIG /* 设置参数 */ -MR_CTRL_GET_CONFIG /* 获取参数 */ +MR_DEVICE_CTRL_SET_CONFIG /* 设置参数 */ +MR_DEVICE_CTRL_GET_CONFIG /* 获取参数 */ ``` ### 设置DAC设备通道 @@ -106,15 +105,15 @@ MR_ENABLE 1 /* 使能通 mr_device_t dac_device = mr_device_find("dac1"); /* 以只写方式打开 */ -mr_device_open(dac_device, MR_OPEN_WRONLY); +mr_device_open(dac_device, MR_DEVICE_OFLAG_WRONLY); /* 获取参数 */ struct mr_dac_config dac_config; -mr_device_ioctl(dac_device, MR_CTRL_GET_CONFIG, &dac_config); +mr_device_ioctl(dac_device, MR_DEVICE_CTRL_GET_CONFIG, &dac_config); /* 使能通道1 */ dac_config.channel.ch1 = MR_ENABLE; -mr_device_ioctl(dac_device, MR_CTRL_SET_CONFIG, &dac_config); +mr_device_ioctl(dac_device, MR_DEVICE_CTRL_SET_CONFIG, &dac_config); ``` ---------- @@ -122,22 +121,20 @@ mr_device_ioctl(dac_device, MR_CTRL_SET_CONFIG, &dac_config); ## 写入DAC设备通道输出值 ```c -mr_ssize_t mr_device_write(mr_device_t device, mr_pos_t pos, const void *buffer, mr_size_t size); +mr_ssize_t mr_device_write(mr_device_t device, mr_off_t pos, const void *buffer, mr_size_t size); ``` | 参数 | 描述 | |:----------|:--------| -| device | DAC设备句柄 | +| device | DAC设备 | | pos | 写入位置 | | buffer | 写入数据 | | size | 写入数据大小 | | **返回** | | | 实际写入的数据大小 | | -- 写入位置:需要写入数据的通道。 -- 写入数据:DAC设备输出值。 - -DAC设备数据为uint32格式。 +- 写入位置:需要写入数据的通道,有效范围:0-31。 +- 写入数据:DAC设备输出值,类型为:uint32。 使用示例: @@ -148,11 +145,11 @@ DAC设备数据为uint32格式。 mr_device_t dac_device = mr_device_find("dac1"); /* 以只写方式打开 */ -mr_device_open(dac_device, MR_OPEN_WRONLY); +mr_device_open(dac_device, MR_DEVICE_OFLAG_WRONLY); /* 使能通道1 */ dac_config.channel.ch1 = MR_ENABLE; -mr_device_ioctl(dac_device, MR_CTRL_SET_CONFIG, &dac_config); +mr_device_ioctl(dac_device, MR_DEVICE_CTRL_SET_CONFIG, &dac_config); /* 写入通道1输出值 */ mr_uint32_t dac_value = 1200; diff --git a/document/user/device/device.md b/document/user/device/device.md index c65f110..6aee608 100644 --- a/document/user/device/device.md +++ b/document/user/device/device.md @@ -4,7 +4,7 @@ ## 操作流程图 -![流程图](https://gitee.com/MacRsh/mr-library/raw/master/document/resource/device_process.jpg) +![流程图](https://gitee.com/MacRsh/mr-library/raw/develop/document/resource/device_process.jpg) ## 设备模型 @@ -15,16 +15,15 @@ struct mr_device { struct mr_object object; /* 设备对象基类 */ - enum mr_device_type type; /* 设备类型 */ - mr_uint16_t support_flag; /* 设备支持的打开方式 */ - mr_uint16_t open_flag; /* 设备打开方式 */ + mr_uint8_t type; /* 设备类型 */ + mr_uint8_t sflags; /* 设备支持的打开方式 */ + mr_uint8_t oflags; /* 设备打开方式 */ + mr_uint8_t reserved; /* 保留 */ mr_size_t ref_count; /* 设备被引用次数 */ - mr_err_t (*rx_cb)(mr_device_t device, void *args); /* 设备接收回调函数 */ mr_err_t (*tx_cb)(mr_device_t device, void *args); /* 设备发送回调函数 */ const struct mr_device_ops *ops; /* 设备操作方法 */ - void *data; /* 设备数据 */ }; ``` @@ -57,17 +56,16 @@ enum mr_device_type 设备只能以支持的打开方式打开,定义如下: ```c -MR_OPEN_RDONLY 0x1000 /* 只读打开 */ -MR_OPEN_WRONLY 0x2000 /* 只写打开 */ -MR_OPEN_RDWR 0x3000 /* 可读可写 */ - -MR_OPEN_NONBLOCKING 0x4000 /* 非阻塞 */ +MR_DEVICE_OFLAG_RDONLY 0x10 /* 只读打开 */ +MR_DEVICE_OFLAG_WRONLY 0x20 /* 只写打开 */ +MR_DEVICE_OFLAG_RDWR 0x30 /* 可读可写 */ +MR_DEVICE_OFLAG_NONBLOCKING 0x40 /* 非阻塞 */ ``` -打开方式可或使用,例如: +非阻塞打开方式可与其他打开方式相或使用,例如: ```c -(MR_OPEN_RDWR | MR_OPEN_NONBLOCKING) /* 非阻塞可读可写 */ +(MR_DEVICE_OFLAG_RDWR | MR_DEVICE_OFLAG_NONBLOCKING) /* 非阻塞可读可写 */ ``` ### 设备操作方法 @@ -80,8 +78,8 @@ struct mr_device_ops mr_err_t (*open)(mr_device_t device); mr_err_t (*close)(mr_device_t device); mr_err_t (*ioctl)(mr_device_t device, int cmd, void *args); - mr_ssize_t (*read)(mr_device_t device, mr_pos_t pos, void *buffer, mr_size_t size); - mr_ssize_t (*write)(mr_device_t device, mr_pos_t pos, const void *buffer, mr_size_t size); + mr_ssize_t (*read)(mr_device_t device, mr_off_t pos, void *buffer, mr_size_t size); + mr_ssize_t (*write)(mr_device_t device, mr_off_t pos, const void *buffer, mr_size_t size); }; ``` @@ -126,25 +124,24 @@ mr_device_t spi0_device = mr_device_find("spi10"); mr_device_t spi1_device = mr_device_find("spi11"); /* 挂载总线 */ -mr_device_ioctl(spi0_device, MR_CTRL_ATTACH, "spi1"); -mr_device_ioctl(spi1_device, MR_CTRL_ATTACH, "spi1"); +mr_device_ioctl(spi0_device, MR_DEVICE_CTRL_CONNECT, "spi1"); +mr_device_ioctl(spi1_device, MR_DEVICE_CTRL_CONNECT, "spi1"); /* 以可读可写的方式打开 */ -mr_device_open(spi0_device, MR_OPEN_RDWR); -mr_device_open(spi1_device, MR_OPEN_RDWR); +mr_device_open(spi0_device, MR_DEVICE_OFLAG_RDWR); +mr_device_open(spi1_device, MR_DEVICE_OFLAG_RDWR); /* 发送数据 */ char buffer0[] = "hello"; char buffer1[] = "world"; -mr_device_write(spi0_device, 0, buffer0, sizeof(buffer0) - 1); -mr_device_write(spi1_device, 0, buffer1, sizeof(buffer1) - 1); +mr_device_write(spi0_device, -1, buffer0, sizeof(buffer0) - 1); +mr_device_write(spi1_device, -1, buffer1, sizeof(buffer1) - 1); /* 读取数据 */ -mr_device_read(spi0_device, 0, buffer0, sizeof(buffer0) - 1); -mr_device_read(spi1_device, 0, buffer1, sizeof(buffer1) - 1); +mr_device_read(spi0_device, -1, buffer0, sizeof(buffer0) - 1); +mr_device_read(spi1_device, -1, buffer1, sizeof(buffer1) - 1); /* 关闭设备 */ mr_device_close(spi0_device); mr_device_close(spi1_device); -``` - +``` \ No newline at end of file diff --git a/document/user/device/pin.md b/document/user/device/pin.md index d370b99..6b71fef 100644 --- a/document/user/device/pin.md +++ b/document/user/device/pin.md @@ -8,17 +8,16 @@ GPIO(通用目的输入/输出)是一种可以通过软件进行控制的硬 ---------- -## 准备工作 +## 准备 -1. 引用 `mrdrv.h` 头文件以使用驱动部分。 -2. 调用PIN设备初始化函数(如果实现了自动初始化,则无需调用)。 -3. 使能 `mrconfig.h` 头文件中PIN宏开关。 +1. 调用PIN设备初始化函数(如果实现了自动初始化,则无需调用)。 +2. 使能 `mrconfig.h` 头文件中PIN宏开关。 ---------- ## 调用关系 -![调用关系](https://gitee.com/MacRsh/mr-library/raw/master/document/resource/pin_device.png) +![调用关系](https://gitee.com/MacRsh/mr-library/raw/develop/document/resource/pin_device.png) ---------- @@ -32,7 +31,7 @@ mr_device_t mr_device_find(const char *name); |:--------|:-------| | name | PIN设备名 | | **返回** | | -| PIN句柄 | 查找设备成功 | +| PIN | 查找设备成功 | | MR_NULL | 查找设备失败 | ---------- @@ -40,23 +39,23 @@ mr_device_t mr_device_find(const char *name); ## 打开PIN设备 ```c -mr_err_t mr_device_open(mr_device_t device, mr_uint16_t flags); +mr_err_t mr_device_open(mr_device_t device, mr_uint8_t oflags); ``` -| 参数 | 描述 | -|:----------|:--------| -| device | PIN设备句柄 | -| flags | 打开方式 | -| **返回** | | -| MR_ERR_OK | 打开设备成功 | -| 错误码 | 打开设备失败 | +| 参数 | 描述 | +|:------------|:-------| +| device | PIN设备 | +| oflags | 打开方式 | +| **返回** | | +| MR_ERR_OK | 打开设备成功 | +| 错误码 | 打开设备失败 | PIN设备支持以下打开方式: ```c -MR_OPEN_RDONLY /* 只读 */ -MR_OPEN_WRONLY /* 只写 */ -MR_OPEN_RDWR /* 可读可写 */ +MR_DEVICE_OFLAG_RDONLY /* 只读 */ +MR_DEVICE_OFLAG_WRONLY /* 只写 */ +MR_DEVICE_OFLAG_RDWR /* 可读可写 */ ``` ---------- @@ -69,7 +68,7 @@ mr_err_t mr_device_ioctl(mr_device_t device, int cmd, void *args); | 参数 | 描述 | |:----------|:--------| -| device | PIN设备句柄 | +| device | PIN设备 | | cmd | 控制命令 | | args | 控制参数 | | **返回** | | @@ -79,8 +78,8 @@ mr_err_t mr_device_ioctl(mr_device_t device, int cmd, void *args); PIN设备支持以下命令: ```c -MR_CTRL_SET_CONFIG /* 设置参数 */ -MR_CTRL_SET_RX_CB /* 设置接收(外部中断)回调函数 */ +MR_DEVICE_CTRL_SET_CONFIG /* 设置参数 */ +MR_DEVICE_CTRL_SET_RX_CB /* 设置接收(外部中断)回调函数 */ ``` ### 设置PIN设备IO @@ -90,8 +89,8 @@ PIN控制参数原型如下: ```c struct mr_pin_config { - mr_pos_t number; /* IO编号 */ - mr_uint8_t mode; /* 模式 */ + mr_off_t number: 28; /* IO编号 */ + mr_uint32_t mode: 4; /* 模式 */ }; ``` @@ -124,13 +123,13 @@ MR_PIN_MODE_IRQ_HIGH /* 高电平 mr_device_t pin_device = mr_device_find("pin"); /* 以可读可写的方式打开 */ -mr_device_open(pin_device, MR_OPEN_RDWR); +mr_device_open(pin_device, MR_DEVICE_OFLAG_RDWR); /* 设置B13引脚为推挽输出模式 */ struct mr_pin_config pin_config; pin_config.number = PIN_NUMBER; pin_config.mode = MR_PIN_MODE_OUTPUT; -mr_device_ioctl(pin_device, MR_CTRL_SET_CONFIG, &pin_config); +mr_device_ioctl(pin_device, MR_DEVICE_CTRL_SET_CONFIG, &pin_config); ``` ### 设置PIN设备IO外部中断并绑定回调函数 @@ -145,7 +144,7 @@ mr_device_ioctl(pin_device, MR_CTRL_SET_CONFIG, &pin_config); /* 定义回调函数 */ mr_err_t pin_device_cb(mr_device_t device, void *args) { - mr_pos_t number = *(mr_pos_t *)args; /* 获取中断源 */ + mr_off_t number = *(mr_off_t *)args; /* 获取中断源 */ /* 判断中断源B13 */ if (number == PIN_NUMBER) @@ -158,38 +157,37 @@ mr_err_t pin_device_cb(mr_device_t device, void *args) mr_device_t pin_device = mr_device_find("pin"); /* 以可读可写的方式打开 */ -mr_device_open(pin_device, MR_OPEN_RDWR); +mr_device_open(pin_device, MR_DEVICE_OFLAG_RDWR); /* 设置B13引脚为上升沿触发模式 */ struct mr_pin_config pin_config; pin_config.number = PIN_NUMBER; pin_config.mode = MR_PIN_MODE_IRQ_RISING; -mr_device_ioctl(pin_device, MR_CTRL_SET_CONFIG, &pin_config); +mr_device_ioctl(pin_device, MR_DEVICE_CTRL_SET_CONFIG, &pin_config); /* 设置回调函数 */ -mr_device_ioctl(pin_device, MR_CTRL_SET_RX_CB, pin_device_cb); +mr_device_ioctl(pin_device, MR_DEVICE_CTRL_SET_RX_CB, pin_device_cb); ``` ---------- -## 读取PIN设备IO电平 +## 读取PIN设备IO输入电平 ```c -mr_ssize_t mr_device_read(mr_device_t device, mr_pos_t pos, const void *buffer, mr_size_t size); +mr_ssize_t mr_device_read(mr_device_t device, mr_off_t pos, const void *buffer, mr_size_t size); ``` | 参数 | 描述 | |:----------|:--------| -| device | PIN设备句柄 | +| device | PIN设备 | | pos | 读取位置 | | buffer | 读取数据 | | size | 读取数据大小 | | **返回** | | | 实际读取的数据大小 | | -- 读取位置:指需要读取的IO编号,如读取B13,则pos = 29。 - -PIN设备数据为int8格式。 +- 读取位置:需要读取的IO编号,如读取B13,则pos = 29,有效范围:>=0。 +- 读取数据:PIN设备IO输入电平,类型为:int8。 使用示例: @@ -200,39 +198,38 @@ PIN设备数据为int8格式。 mr_device_t pin_device = mr_device_find("pin"); /* 以可读可写的方式打开 */ -mr_device_open(pin_device, MR_OPEN_RDWR); +mr_device_open(pin_device, MR_DEVICE_OFLAG_RDWR); /* 设置B13引脚为浮空输入模式 */ struct mr_pin_config pin_config; pin_config.number = PIN_NUMBER; pin_config.mode = MR_PIN_MODE_INPUT; -mr_device_ioctl(pin_device, MR_CTRL_SET_CONFIG, &pin_config); +mr_device_ioctl(pin_device, MR_DEVICE_CTRL_SET_CONFIG, &pin_config); /* 获取B13电平 */ -mr_level_t pin_level = MR_LOW; +mr_level_t pin_level; mr_device_read(pin_device, PIN_NUMBER, &pin_level, sizeof(pin_level)); ``` ---------- -## 写入PIN设备IO电平 +## 写入PIN设备IO输出电平 ```c -mr_ssize_t mr_device_write(mr_device_t device, mr_pos_t pos, const void *buffer, mr_size_t size); +mr_ssize_t mr_device_write(mr_device_t device, mr_off_t pos, const void *buffer, mr_size_t size); ``` | 参数 | 描述 | |:----------|:--------| -| device | PIN设备句柄 | +| device | PIN设备 | | pos | 写入位置 | | buffer | 写入数据 | | size | 写入数据大小 | | **返回** | | | 实际写入的数据大小 | | -- 写入位置:指需要写入的IO编号,如读取B13,则pos = 29。 - -PIN设备数据为int8格式。 +- 写入位置:需要写入的IO编号,如读取B13,则pos = 29,有效范围:>=0。 +- 写入数据:PIN设备IO输出电平,类型为:int8。 使用示例: @@ -243,13 +240,13 @@ PIN设备数据为int8格式。 mr_device_t pin_device = mr_device_find("pin"); /* 以可读可写的方式打开 */ -mr_device_open(pin_device, MR_OPEN_RDWR); +mr_device_open(pin_device, MR_DEVICE_OFLAG_RDWR); /* 设置B13引脚为推挽输出模式 */ struct mr_pin_config pin_config; pin_config.number = PIN_NUMBER; pin_config.mode = MR_PIN_MODE_OUTPUT; -mr_device_ioctl(pin_device, MR_CTRL_SET_CONFIG, &pin_config); +mr_device_ioctl(pin_device, MR_DEVICE_CTRL_SET_CONFIG, &pin_config); /* 设置B13为高电平 */ mr_level_t pin_level = MR_HIGH; diff --git a/document/user/usage_guide.md b/document/user/usage_guide.md index b0fe097..bb7121e 100644 --- a/document/user/usage_guide.md +++ b/document/user/usage_guide.md @@ -2,46 +2,43 @@ ---------- -## 准备工作 +## 拉取代码 -在开始之前,请从 [gitee仓库](https://gitee.com/MacRsh/mr-library.git) 拉去最新代码。 +在开始之前,请从 [gitee仓库](https://gitee.com/MacRsh/mr-library.git) 拉取代码。 代码包含以下文件: -| 名称 | 描述 | -|:-----------|:------| -| mr_library | | -| -bsp | 板级支持包 | -| -device | 设备文件 | -| -document | 文档 | -| -driver | 驱动文件 | -| -include | 头文件 | -| -module | 组件 | -| -package | 软件包 | -| -src | 源文件 | +| 名称 | 描述 | +|:-----------|:--------| +| mr_library | | +| -bsp | 板级支持包 | +| -device | 设备文件 | +| -document | 文档 | +| -driver | 驱动文件 | +| -include | 库头文件 | +| -module | 组件 | +| -package | 软件包 | +| -src | 库源文件 | -选择工程所需的文件: +选择需要的文件: | 名称 | 描述 | |:-----------|:-----| | mr_library | | | -include | 头文件 | | -src | 源文件 | -| 使用设备框架时添加 | | | -device | 设备文件 | | -driver | 驱动文件 | ---------- -## 配置工程 +## 加载项目 -1. 将 `mr_library` 文件添加到项目中,并将文件路径添加到项目设置中。 -2. 按需配置 `mrconfig.h` 文件中宏开关,裁剪框架。 -3. 引用 `mrlib.h` 头文件。 +1. 将上述文件添加到您的项目中,从 `bsp` 目录中选择芯片对应的驱动文件,并将其复制(替换)到 `driver` 目录中,并将上述文件路径添加到您的项目路径中。 +2. 配置 `mrboard.h` 文件中宏定义完成芯片外设裁剪。 +3. 配置 `mrconfig.h` 文件中宏开关,裁剪不需要的功能。 +4. 引用 `mrlib.h` 头文件,开始使用。 -使用设备框架时,请再完成以下步骤: -1. 从 `bsp` 目录中选择芯片的驱动文件,并将它们放入 `driver` 目录中。 -2. 在 `mrboard.h` 文件指定位置处添加芯片头文件,修改宏定义完成外设裁剪。 -3. 引用 `mrdrv.h` 头文件以使用设备框架部分。 + ---------- 如使能了自动初始化功能,请查看自动初始化使用手册。 \ No newline at end of file