IoT_SCV_CH584M/common/letter-shell/shell_port.c

58 lines
1.0 KiB
C
Raw Normal View History

2024-12-11 16:21:57 +08:00
#include "shell.h"
#include "bsp_uart.h"
#include "log.h"
#include "stdbool.h"
#include "shell_port.h"
2024-12-11 16:21:57 +08:00
Shell shell;
char shellBuffer[SHELL_BUF_LENGTH];
void Uart_Log_Write(char *buffer, short len);
// 定义log对象
Log uartLog = {
.write = Uart_Log_Write,
.active = LOG_ENABLE,
.level = LOG_ALL
};
/**
* @brief shell写
*
2024-12-11 16:21:57 +08:00
* @param data
* @param len
*
2024-12-11 16:21:57 +08:00
* @return unsigned short
*/
signed short userShellWrite(char *data, unsigned short len)
{
BSP_Uart3_Send_Data(data, len);
return len;
}
// 实现log写buffer函数
void Uart_Log_Write(char *buffer, short len)
{
if (uartLog.shell)
{
// log工具可以结合letter shell的尾行模式实现log和shell共用一个终端但不影响shell交互体验
2024-12-11 16:21:57 +08:00
shellWriteEndLine(uartLog.shell, buffer, len);
}
}
/**
* @brief shell初始化
*
2024-12-11 16:21:57 +08:00
*/
void SHELL_Init(void)
2024-12-11 16:21:57 +08:00
{
shell.write = userShellWrite;
shellInit(&shell, shellBuffer, SHELL_BUF_LENGTH);
logRegister(&uartLog, &shell);
}