CAT_LOG.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /*
  2. * @Author: xmprocat
  3. * @Date: 2023-03-20 20:26:22
  4. * @LastEditors: xmprocat
  5. * @LastEditTime: 2023-03-20 20:26:42
  6. * @Description:
  7. */
  8. /*
  9. * @说明
  10. * @ 使用前确认J-link 版本号 该版本 V7.69b
  11. * @ //重定义fputc函数 已在 RTT_printf 中重定向 可使用
  12. int fputc(int ch, FILE *f)
  13. {
  14. SEGGER_RTT_PutChar(0, ch);
  15. return ch;
  16. }
  17. * @ 当前头文件已封装 #include "CAT_LOG.h"
  18. * @以下为可用打印例程
  19. * mian初始化调用 SEGGER_RTT_Init();//初始化时调用
  20. *main添加添加头文件
  21. *SEGGER_RTT_SetTerminal(1);该函数可选择打印jlink号码页;
  22. */
  23. //可重定向printf打印
  24. // printf("RTT test 0!\r\n");
  25. // //例程 未再次封装使用
  26. //SEGGER_RTT_printf(0,RTT_CTRL_TEXT_RED"%02X %D\r\n",value,data);
  27. ////再次封装使用
  28. //LOGI("RTT test 0!\r\n");//绿色
  29. //其他颜色及内容可根据下方内容增加修改;
  30. #ifndef _CAT_LOG_H_
  31. #define _CAT_LOG_H_
  32. #include "SEGGER_RTT.h"
  33. #define LOG_DEBUG 1
  34. #if LOG_DEBUG
  35. #define LOG_PROTO(type,color,format,...) \
  36. SEGGER_RTT_printf(0," %s%s"format" %s", \
  37. color, \
  38. type, \
  39. ##__VA_ARGS__, \
  40. RTT_CTRL_RESET)
  41. /* 清屏*/
  42. #define LOG_CLEAR() SEGGER_RTT_WriteString(0, " "RTT_CTRL_CLEAR)
  43. /* 无颜色日志输出 */
  44. #define LOG(format,...) LOG_PROTO("","",format,##__VA_ARGS__)
  45. /* 有颜色格式日志输出 */
  46. #define LOGG(format,...) LOG_PROTO("", RTT_CTRL_TEXT_BRIGHT_GREEN , format, ##__VA_ARGS__)
  47. #define LOGY(format,...) LOG_PROTO("", RTT_CTRL_TEXT_BRIGHT_YELLOW, format, ##__VA_ARGS__)
  48. #define LOGR(format,...) LOG_PROTO("", RTT_CTRL_TEXT_BRIGHT_RED , format, ##__VA_ARGS__)
  49. #define LOGB(format,...) LOG_PROTO("", RTT_CTRL_TEXT_BRIGHT_BLUE , format, ##__VA_ARGS__)
  50. #define LOGM(format,...) LOG_PROTO("", RTT_CTRL_TEXT_BRIGHT_MAGENTA , format, ##__VA_ARGS__)
  51. #define LOGC(format,...) LOG_PROTO("", RTT_CTRL_TEXT_BRIGHT_CYAN , format, ##__VA_ARGS__)
  52. #else
  53. #define LOG_CLEAR()
  54. #define LOG
  55. #define LOGI
  56. #define LOGW
  57. #define LOGE
  58. #endif
  59. #endif // !_LOG_H_