add bsp log doc

This commit is contained in:
NeoZng
2022-11-11 21:49:03 +08:00
parent ebb33406bb
commit 33e10fa687
6 changed files with 64 additions and 8 deletions

View File

@@ -4,11 +4,21 @@
> TODO:为初始化定义一个结构体`usart_init_config`用于保存初始化所需的参数从而避免单独赋值,使得整体风格统一。
## 使用说明
若你需要构建新的基于串口的module首先需要拥有一个`usart_instance`的指针用于操作串口对象。
需要在串口实例下设定接收的数据包的长度,实例对应的串口硬件(通过`UART_HandleTypeDef`指定,如`&huart1`),解析接收数据对应的回调函数这三个参数。然后,调用`USARTRegister()`并传入配置好的`usart_instance`指针即可。
若要发送数据,调用`USARTSend()`。注意buffsize务必小于buff的大小否则造成指针越界后果未知。
串口硬件收到数据时,会将其存入`usart_instance.recv_buff[]`中,当收到完整一包数据,会调用设定的回调函数`module_callback`(即你提供的解析函数)。在此函数中,你可以通过`usart_instance.recv_buff[]`访问串口收到的数据。
## 代码结构
.h文件内包括了外部接口和类型定义,以及模块对应的宏。c文件内为私有函数和外部接口的定义。
### 类型定义
## 类型定义
```c
#define DEVICE_USART_CNT 3 // C板至多分配3个串口
@@ -35,7 +45,7 @@ typedef struct
- 每定义一个`usart_instance`,就代表一个串口的**实例**对象。一个串口实例内有接收buffer单个数据包的大小该串口对应的`HAL handle`(代表其使用的串口硬件具体是哪一个)以及用于解包数据的回调函数。
### 外部接口
## 外部接口
```c
void USARTRegister(usart_instance *_instance);
@@ -48,7 +58,7 @@ void USARTSend(usart_instance *_instance, uint8_t *send_buf, uint16_t send_size)
- `USARTSend()`是通过模块通过其拥有的串口对象发送数据的接口调用时传入的参数为串口实例指针发送缓存以及此次要发送的数据长度8-bit\*n)。
### 私有函数和变量
## 私有函数和变量
在.c文件内设为static的函数和变量