UART_Debug.c 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /**************************** (C) COPYRIGHT 2018 Fortiortech Shenzhen ******************************
  2. * File Name : UART_Debug.c
  3. * Author : Any Lin
  4. * Version : V1.0
  5. * Date : 2018-07-01
  6. * Description : Based on ANOT
  7. ****************************************************************************************************
  8. * All Rights Reserved
  9. ***************************************************************************************************/
  10. /**************************************************************************************************///Including Header Files
  11. #include <UART_Debug.h>
  12. /**************************************************************************************************///Define Macro
  13. #define BUFFLEN 128
  14. /**************************************************************************************************///Define Global Symbols
  15. static unsigned char xdata sg_ucUartDbgData[BUFFLEN] = {0xaa, 0xaa};
  16. static char sg_cUartDataLen;
  17. static unsigned char sg_ucUartDataSum;
  18. /**************************************************************************************************///Function Subject
  19. /**
  20. * 初始化缓存区内容
  21. *
  22. * @param Type 输出的指令
  23. */
  24. void InitBuff_UARTDBG(unsigned char Type)
  25. {
  26. sg_ucUartDbgData[2] = Type;
  27. sg_cUartDataLen = 4;
  28. sg_ucUartDataSum = 0x54 + Type;
  29. }
  30. /**
  31. * 装载16位数据
  32. *
  33. * @param Data 要装载的数据
  34. */
  35. void LoadBuff16_UARTDBG(unsigned short Data)
  36. {
  37. union
  38. {
  39. unsigned short m_w;
  40. unsigned char m_uc[2];
  41. }uChange;
  42. uChange.m_w = Data;
  43. sg_ucUartDbgData[sg_cUartDataLen++] = uChange.m_uc[0];
  44. sg_ucUartDbgData[sg_cUartDataLen++] = uChange.m_uc[1];
  45. sg_ucUartDataSum += uChange.m_uc[0] + uChange.m_uc[1];
  46. }
  47. /**
  48. * 装载8位数据
  49. *
  50. * @param Data 要装载数据
  51. */
  52. void LoadBuff8_UARTDBG(unsigned char Data)
  53. {
  54. sg_ucUartDbgData[sg_cUartDataLen++] = Data;
  55. sg_ucUartDataSum += Data;
  56. }
  57. /**
  58. * 发送前的准备
  59. *
  60. * @return 将要发送的字节数
  61. */
  62. unsigned char SendReady_UARTDBG(void)
  63. {
  64. sg_ucUartDbgData[3] = sg_cUartDataLen - 4;
  65. sg_ucUartDataSum += sg_ucUartDbgData[3];
  66. sg_ucUartDbgData[sg_cUartDataLen] = sg_ucUartDataSum;
  67. return sg_cUartDataLen;
  68. }
  69. /**
  70. * 获取缓存区的地址
  71. *
  72. * @return 缓存区地址
  73. */
  74. unsigned char* GetAddr_UARTDBG(void)
  75. {
  76. return &sg_ucUartDbgData;
  77. }