Log_Module.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "stm32f10x.h"
  2. #include <stdio.h>
  3. #include <stdarg.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include "Log_Module.h"
  7. #include "CONFIG.h"
  8. // 串口打印日志
  9. void Log_SendByte(uint8_t Byte)
  10. {
  11. USART_SendData(USART1, Byte);
  12. while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
  13. }
  14. void Log_SendString(char *String)
  15. {
  16. uint16_t i;
  17. for(i = 0; String[i] != '\0'; i ++)
  18. {
  19. Log_SendByte(String[i]);
  20. }
  21. }
  22. // 打印字节
  23. void Log_SendArray(uint8_t * arr, uint16_t len)
  24. {
  25. uint16_t i;
  26. for(i = 0; i < len; i ++)
  27. {
  28. Log_SendByte(arr[i]);
  29. }
  30. }
  31. // 打印Hex
  32. void Log_SendHex(uint8_t * arr, uint16_t len)
  33. {
  34. uint16_t i;
  35. char hex[5];
  36. for(i = 0; i < len; i ++)
  37. {
  38. sprintf(hex, "%02X", arr[i]);
  39. Log_SendString(hex);
  40. }
  41. }
  42. static char Log_String[1024];
  43. void Log_Printf(char *format, ...)
  44. {
  45. memset(Log_String, 0, sizeof(Log_String));
  46. va_list arg;
  47. va_start(arg, format);
  48. vsprintf(Log_String, format, arg);
  49. va_end(arg);
  50. Log_SendString(Log_String);
  51. }
  52. // 打印字节
  53. void Log_SendArray_Debug(uint8_t * arr, uint16_t len)
  54. {
  55. if(DEBUG == 0) return; // 调试开关
  56. Log_SendArray(arr, len);
  57. }
  58. // 打印的缓存
  59. void Log_Printf_Debug(char *format, ...)
  60. {
  61. if(DEBUG == 0) return; // 调试开关
  62. memset(Log_String, 0, sizeof(Log_String));
  63. va_list arg;
  64. va_start(arg, format);
  65. vsprintf(Log_String, format, arg);
  66. va_end(arg);
  67. Log_SendString(Log_String);
  68. }