mirror of
https://gitee.com/dlmu-cone/bf_original_balance_chassis
synced 2026-07-24 03:27:45 +08:00
增加了一些编译优化,增加了log使用文档,新增部分user_lib功能
This commit is contained in:
@@ -7,44 +7,46 @@
|
||||
|
||||
#define BUFFER_INDEX 0
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief 日志系统初始化
|
||||
*
|
||||
*
|
||||
*/
|
||||
void BSPLogInit();
|
||||
|
||||
/**
|
||||
* @brief 日志功能原型,供下面的LOGI,LOGW,LOGE等使用
|
||||
*
|
||||
*
|
||||
*/
|
||||
#define LOG_PROTO(type,color,format,...) \
|
||||
SEGGER_RTT_printf(BUFFER_INDEX," %s%s"format"\r\n%s", \
|
||||
color, \
|
||||
type, \
|
||||
##__VA_ARGS__, \
|
||||
#define LOG_PROTO(type, color, format, ...) \
|
||||
SEGGER_RTT_printf(BUFFER_INDEX, " %s%s" format "\r\n%s", \
|
||||
color, \
|
||||
type, \
|
||||
##__VA_ARGS__, \
|
||||
RTT_CTRL_RESET)
|
||||
|
||||
/*------下面是日志输出的接口--------*/
|
||||
/*----------------------------------------下面是日志输出的接口-------------------------------------------------*/
|
||||
|
||||
/* 清屏 */
|
||||
#define LOG_CLEAR() SEGGER_RTT_WriteString(0, " "RTT_CTRL_CLEAR)
|
||||
#define LOG_CLEAR() SEGGER_RTT_WriteString(0, " " RTT_CTRL_CLEAR)
|
||||
|
||||
/* 无颜色日志输出 */
|
||||
#define LOG(format,...) LOG_PROTO("","",format,##__VA_ARGS__)
|
||||
#define LOG(format, ...) LOG_PROTO("", "", format, ##__VA_ARGS__)
|
||||
|
||||
/* 有颜色格式日志输出,建议使用这些宏来输出日志 */
|
||||
/**
|
||||
* 有颜色格式日志输出,建议使用这些宏来输出日志
|
||||
* @attention 注意这些接口不支持浮点格式化输出,若有需要,请使用Float2Str()函数进行转换后再打印
|
||||
*/
|
||||
// information level
|
||||
#define LOGINFO(format,...) LOG_PROTO("I:", RTT_CTRL_TEXT_BRIGHT_GREEN , format, ##__VA_ARGS__)
|
||||
#define LOGINFO(format, ...) LOG_PROTO("I:", RTT_CTRL_TEXT_BRIGHT_GREEN, format, ##__VA_ARGS__)
|
||||
// warning level
|
||||
#define LOGWARNING(format,...) LOG_PROTO("W:", RTT_CTRL_TEXT_BRIGHT_YELLOW, format, ##__VA_ARGS__)
|
||||
#define LOGWARNING(format, ...) LOG_PROTO("W:", RTT_CTRL_TEXT_BRIGHT_YELLOW, format, ##__VA_ARGS__)
|
||||
// error level
|
||||
#define LOGERROR(format,...) LOG_PROTO("E:", RTT_CTRL_TEXT_BRIGHT_RED , format, ##__VA_ARGS__)
|
||||
#define LOGERROR(format, ...) LOG_PROTO("E:", RTT_CTRL_TEXT_BRIGHT_RED, format, ##__VA_ARGS__)
|
||||
|
||||
/**
|
||||
* @brief 通过segger RTT打印日志,支持格式化输出,格式化输出的实现参考printf.
|
||||
*
|
||||
* @attention !! 此函数不支持浮点格式化,若有需要,请使用Float2Str()函数进行转换后再打印 !!
|
||||
*
|
||||
* @param fmt 格式字符串
|
||||
* @param ... 参数列表
|
||||
* @return int 打印的log字符数
|
||||
@@ -53,7 +55,8 @@ int PrintLog(const char *fmt, ...);
|
||||
|
||||
/**
|
||||
* @brief 利用sprintf(),将float转换为字符串进行打印
|
||||
*
|
||||
* @attention 浮点数需要转换为字符串后才能通过RTT打印
|
||||
*
|
||||
* @param str 转换后的字符串
|
||||
* @param va 待转换的float
|
||||
*/
|
||||
|
||||
@@ -2,10 +2,6 @@
|
||||
|
||||
<p align='right'>neozng1@hnu.edu.cn</p>
|
||||
|
||||
> TODO:
|
||||
>
|
||||
> 1. 在未接入调试器的时候,将日志写入flash中,并提供接口读取
|
||||
|
||||
## 使用说明
|
||||
|
||||
bsp_log是基于segger RTT实现的日志打印模块。
|
||||
@@ -18,11 +14,11 @@ bsp_log是基于segger RTT实现的日志打印模块。
|
||||
#define LOGERROR(format,...)
|
||||
```
|
||||
|
||||
分别用于输出不同等级的日志。
|
||||
分别用于输出不同等级的日志。注意RTT不支持直接使用`%f`进行浮点格式化,要使用`void Float2Str(char *str, float va);`转化成字符串之后再发送。
|
||||
|
||||
**若想启用RTT,必须通过`launch.json`的`debug-jlink`启动调试(不论使用什么调试器)。**
|
||||
**若想启用RTT,必须通过`launch.json`的`debug-jlink`启动调试(不论使用什么调试器)。** 按照`VSCode+Ozone环境配置`完成配置之后的cmsis dap和daplink是可以支持Jlink全家桶的。
|
||||
|
||||
注意,若你使用的是cmsis-dap和daplink,**请在调试任务启动之后再打开`log`任务。**(均在项目文件夹下的.vsocde/task.json中,有注释自行查看)。
|
||||
另外,若你使用的是cmsis-dap和daplink,**请在 *jlink* 调试任务启动之后再打开`log`任务。**(均在项目文件夹下的.vsocde/task.json中,有注释自行查看)。否则可能出线RTT viewer无法连接客户端的情况。
|
||||
|
||||
在ozone中查看log输出,直接打开console调试任务台和terminal调试中断便可看到调试输出。
|
||||
|
||||
@@ -34,7 +30,7 @@ bsp_log是基于segger RTT实现的日志打印模块。
|
||||
|
||||
```c
|
||||
int printf_log(const char *fmt, ...);
|
||||
void Float2Str(char *str, float va);
|
||||
void Float2Str(char *str, float va); // 输出浮点需要先用此函数进行转换
|
||||
```
|
||||
|
||||
调用第一个函数,可以通过jlink或dap-link向调试器连接的上位机发送信息,格式和printf相同,示例如下:
|
||||
@@ -52,8 +48,3 @@ char* str_buff[64];
|
||||
Float2Str(str_buff,current_feedback);
|
||||
printf_log("Motor %d met some problem, error code %d!\n",3,1);
|
||||
```
|
||||
|
||||
或直接通过`%f`格式符直接使用`printf_log()`发送日志,可以设置小数点位数以降低带宽开销。
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ static PWMInstance *pwm_instance[PWM_DEVICE_CNT] = {NULL}; // 所有的pwm insta
|
||||
|
||||
/**
|
||||
* @brief pwm dma传输完成回调函数
|
||||
* @attention 由于HAL库的设计问题,当一个pulse完成(即tim的计数超过比较寄存器)也会调用此函数
|
||||
* 故对于那些开启了PWM的TIM,务必关闭其全局中断,仅保持DMA传输完成中断打开
|
||||
*
|
||||
* @param htim 发生中断的定时器句柄
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user