HW_UART_ATY.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /**
  2. * @file HW_UART_ATY.h
  3. *
  4. * @param Project DEVICE_GENERAL_ATY_LIB
  5. *
  6. * @author ATY
  7. *
  8. * @copyright
  9. * - Copyright 2017 - 2026 MZ-ATY
  10. * - This code follows:
  11. * - MZ-ATY Various Contents Joint Statement -
  12. * <a href="https://mengze.top/MZ-ATY_VCJS">
  13. * https://mengze.top/MZ-ATY_VCJS</a>
  14. * - CC 4.0 BY-NC-SA -
  15. * <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  16. * https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
  17. * - Your use will be deemed to have accepted the terms of this statement.
  18. *
  19. * @brief functions of uart for C platform
  20. *
  21. * @version
  22. * - 1_01_221231 > ATY
  23. * -# Preliminary version, first Release
  24. * - 1_02_240410 > ATY
  25. * -# add multy addr and channel
  26. * -# add lock
  27. * -# 1ms with 2 channel at the same time tested good(OK?)
  28. * - 1_04_251118 > ATY
  29. * -# finish UartPrintf and test
  30. ********************************************************************************
  31. */
  32. #ifndef __HW_UART_ATY_H
  33. #define __HW_UART_ATY_H
  34. #include "INCLUDE_ATY.h"
  35. /******************************* For user *************************************/
  36. // #define UART_RX_MAX_LEN (9 + (15 * 4))
  37. // #define UART_RX_MAX_LEN (16)
  38. #ifndef UART_RX_MAX_LEN
  39. #define UART_RX_MAX_LEN (254)
  40. #endif
  41. /******************************************************************************/
  42. struct HW_UART_ATY_Dev{
  43. // uint8_t* rx;
  44. uint8_t rx[UART_RX_MAX_LEN];
  45. uint8_t* tx;
  46. uint8_t rxCount;
  47. uint8_t txCount;
  48. uint32_t rcvOverTimeOutCountNum;
  49. uint32_t rcvOverTimeOutCount;
  50. uint8_t rcvOverFlag;
  51. uint8_t uartInitFlag;
  52. void (*uartInit)(uint8_t* rx);
  53. void (*uartSendByte)(uint8_t byte);
  54. /**
  55. * @brief uart receive data analysis in user define self
  56. */
  57. void (*uartReceiveProcess_User)();
  58. uint8_t lock;
  59. };
  60. uint8_t UartSendByte(uint8_t byte, struct HW_UART_ATY_Dev* dev);
  61. void UartRxClear(struct HW_UART_ATY_Dev* dev);
  62. void UartSendBytes(uint8_t* bytes, uint16_t len, struct HW_UART_ATY_Dev* dev);
  63. void UartSendStr(uint8_t* buf, struct HW_UART_ATY_Dev* dev);
  64. void UartSendFloat(float dataFloat, uint8_t endian, struct HW_UART_ATY_Dev* dev);
  65. void UartSendFloatStr(float dataFloat, uint8_t DECIMALS_NUM, struct HW_UART_ATY_Dev* dev);
  66. void UartReceiveProcess(struct HW_UART_ATY_Dev* dev);
  67. void UartPrintf(struct HW_UART_ATY_Dev* dev, ...);
  68. // #define UartPrintf_Test_ATY
  69. #ifdef UartPrintf_Test_ATY
  70. void UartPrintf_Test_All(struct HW_UART_ATY_Dev* dev);
  71. void UartPrintf_Test_Quick(struct HW_UART_ATY_Dev* dev);
  72. #endif /* UartPrintf_Test_ATY */
  73. #endif /* __HW_UART_ATY_H */
  74. /******************************** End Of File *********************************/