增加了等级日志和RTT viewer的支持

This commit is contained in:
NeoZng
2023-03-18 20:36:21 +08:00
parent 68ac340c5a
commit 6f7bf8e9d7
9 changed files with 110 additions and 19 deletions

View File

@@ -10,6 +10,7 @@
// 模块回调函数,用于解析协议
typedef void (*usart_module_callback)();
/* 发送模式枚举 */
typedef enum
{
USART_TRANSFER_NONE=0,
@@ -37,17 +38,25 @@ typedef struct
} USART_Init_Config_s;
/**
* @brief 注册一个串口实例.
* @brief 注册一个串口实例,返回一个串口实例指针
*
* @param init_config 传入串口初始化结构体
*/
USARTInstance *USARTRegister(USART_Init_Config_s *init_config);
/**
* @brief 启动串口服务,需要传入一个usart实例.一般用于lost callback的情况(使用串口的模块daemon)
*
* @param _instance
*/
void USARTServiceInit(USARTInstance *_instance);
/**
* @brief 通过调用该函数可以发送一帧数据,需要传入一个usart实例,发送buff以及这一帧的长度
* 当前默认为DMA发送,后续会增加中断发送和阻塞发送模式的选择
* @todo 目前只支持DMA发送,后续会增加中断发送和阻塞发送模式的选择
* 在短时间内连续调用此接口会导致上一次的发送未完成而新的发送取消,后续会增加一个发送状态的判断以及消息队列以解决这个问题
* @note 在短时间内连续调用此接口,若采用IT/DMA会导致上一次的发送未完成而新的发送取消.
* @note 若希望连续使用DMA/IT进行发送,请配合USARTIsReady()使用,或自行为你的module实现一个发送队列和任务.
* @todo 是否考虑为USARTInstance增加发送队列以进行连续发送?
*
* @param _instance 串口实例
* @param send_buf 待发送数据的buffer
@@ -55,4 +64,12 @@ USARTInstance *USARTRegister(USART_Init_Config_s *init_config);
*/
void USARTSend(USARTInstance *_instance, uint8_t *send_buf, uint16_t send_size,USART_TRANSFER_MODE mode);
/**
* @brief 判断串口是否准备好,用于连续或异步的IT/DMA发送
*
* @param _instance 要判断的串口实例
* @return uint8_t ready 1, busy 0
*/
uint8_t USARTIsReady(USARTInstance *_instance);
#endif