uart_rcv.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /*
  2. * uart_rcv.h
  3. *
  4. * Created on: 2022年4月20日
  5. * Author: dell
  6. */
  7. #ifndef UART_RCV_H_
  8. #define UART_RCV_H_
  9. #define DEBUG_BUF_SIZE (512) // 调试串口缓冲区长度
  10. #define FRAME_RCV_OVERTIME (10) // 帧接收超时时间,单位:ms
  11. #define OVERTIME_SEC (10) // 接收清除命令超时时间:10秒
  12. #define BUF_SIZE (64) // 调试串口缓冲区长度
  13. #define FRAME_RCV_OVERTIME (10) // 帧接收超时时间,单位:ms
  14. #define OVERTIME_SEC (10)
  15. #define MINI7_HEADER_FALG 0x55AA
  16. #define MINI7_TAIL_FALG 0x5A
  17. #define MINI7_MASSAGE_SIZE 8
  18. #define MINI7_MASSAGE_TYPE_MCUTOMCU 0x10
  19. #define DEBUG_UART UART0 //调试串口号
  20. #define DEBUG_UART_RST UART0_RST //调试串口复位标志
  21. #define DEBUG_UART_IRQ UART02_IRQn //中断向量
  22. //#define hole1 1
  23. //#define hole2 2
  24. //#define hole3 3
  25. //#define hole4 4
  26. //#define hole5 5
  27. //#define hole6 6
  28. //#define hole7 7
  29. //#define hole8 8
  30. //#define hole9 9
  31. //#define hole10 10
  32. //#define hole1 1
  33. enum QR_CHECH_STATE
  34. {
  35. QR_CHECH_STATE_FIRST = 0,
  36. QR_CHECH_STATE_TRYAGAIN = 1,
  37. QR_CHECH_STATE_WAITING= 3,
  38. QR_CHECH_STATE_SEND= 4,
  39. };
  40. enum QR_REC_STATE
  41. {
  42. QR_REC_STATE_EMPTY = 0,
  43. QR_REC_STATE_HEADER ,
  44. QR_REC_STATE_SENDPRAM,
  45. QR_REC_STATE_SENDQR,
  46. QR_REC_STATE_END,
  47. };
  48. /* 串口命令码 */
  49. enum
  50. {
  51. UART0_PARAM_DOWNLOAD = 0x01, //参数下载
  52. UART0_HEAT_CTRL = 0x02, //加热控制
  53. UART0_lIGHTBAND_CTRL = 0x03, //灯带控制
  54. UART0_QRSCANNER_CTRL = 0x04, //二维码扫码模块控制
  55. UART0_FAN_CTRL = 0x05, //风扇控制
  56. UART0_CARD_STA = 0x06, //风扇控制
  57. UART0_CMD_REPLY = 0x10, //回复命令
  58. };
  59. /* 串口2命令码 */
  60. enum
  61. {
  62. UART2_CMD_RCV = 0x00, //命令回复
  63. };
  64. typedef struct
  65. {
  66. uint8_t heat_state; //串口控制加热状态
  67. uint8_t temp_stable_sta; //加热稳定状态
  68. uint8_t fan_state; //风扇状态
  69. uint8_t card_state; //插卡状态
  70. float SetTempVal;
  71. uint32_t PresetTempTime;
  72. float PresetTempVal;
  73. float HoldTemp; //稳定温度
  74. float TempOffset; //温度补偿
  75. uint32_t PreHeatTime; //上电预热时间,min
  76. float ReadyTempVal; //就绪温度55℃
  77. float adJTarget; //根据环境温度,修正目标温度
  78. }heat_ctrl_struct;
  79. extern heat_ctrl_struct g_heat_ctrl;
  80. //灯带控制参数
  81. struct light_band_para_t
  82. {
  83. uint8_t channel;
  84. uint8_t mode;
  85. uint16_t speed;
  86. uint32_t color;
  87. };
  88. struct str_card_param_info m_str_card_param_info;
  89. void UART02_IRQHandler(void);
  90. extern void debug_receive_int_handle0(void);
  91. extern void debug_receive_int_handle1(void);
  92. extern void debug_receive_int_handle2(void);
  93. void uart0_rcv_data_analysis(void);
  94. void uart1_rcv_data_analysis(void);
  95. void uart2_rcv_frame_analysis(void);
  96. void debug_receive_start0(void);
  97. void debug_receive_start2(void);
  98. void heater_state_upload(uint32_t upenv);
  99. void trigmode_select_sensor(void);
  100. void data_out_original(void);
  101. int parse_qrcode_info(struct str_card_param_info *info, char *qrcode_str);
  102. void QRparam_upload(str_card_param_info_t *p_str_card_param_info);
  103. int DecodeNew(struct CmdMessage *pMessage, uint8_t *pdata, const uint8_t *pInBuffer, uint32_t* pheader,uint32_t ulast,uint32_t maxlen);
  104. void sendQR_inf(void);
  105. #endif /* UART_RCV_H_ */