soft_uart.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #ifndef __SOFT_UART_H
  2. #define __SOFT_UART_H
  3. #include "stm32f3xx_hal.h"
  4. #include "soft_can.h"
  5. #include "stdio.h"
  6. #include "rkfifo.h"
  7. #define USART_2 2
  8. #define USART_3 3
  9. #define UART_FCU 1
  10. #define UART_RADAR 2
  11. #define UART_MCCOM 3
  12. #define MAX_UART_BUF 256
  13. #define GROUP_ID_FCU 0
  14. #define GROUP_ID_PMU_UPDATE 204
  15. #define GROUP_ID_F_UPDATE 51
  16. #define GROUP_ID_B_UPDATE 52
  17. #define GROUP_ID_T_UPDATE 56
  18. #define GROUP_ID_WEIGHT_UPDATE 222
  19. #pragma pack(1)
  20. typedef struct
  21. {
  22. bool fcu_buf_flag;
  23. bool use_update_buf_flag;
  24. uint8_t uart2_recv_buf[150];
  25. uint8_t uart3_recv_buf[128];
  26. uint8_t uart_dma_recv_counts;
  27. //uint8_t radar_update_buf[MAX_UART_BUF];
  28. uint32_t update_time;
  29. bool vk_dev_update_flag;
  30. uint16_t vk_dev_pack_num;
  31. uint32_t bin_size;
  32. bool step_200_flag;
  33. bool step_201_flag;
  34. bool step_202_flag;
  35. }Uart;
  36. #pragma pack()
  37. extern Uart uart_info;
  38. #pragma pack(1)
  39. typedef struct
  40. {
  41. uint8_t head; //0xFE
  42. uint8_t len;
  43. uint8_t seq;
  44. uint8_t system_id; //0
  45. uint8_t group_id;
  46. uint8_t msg_id;
  47. uint8_t head_bytes; //6
  48. uint8_t check_bytes;//2
  49. uint16_t crc;
  50. uint8_t payload[MAX_UART_BUF];
  51. }Vk_protocol;
  52. #pragma pack()
  53. extern Vk_protocol fcu_protocol;
  54. extern Vk_protocol radar_protocol;
  55. extern rkfifo_t recv_rkfifo;
  56. extern rkfifo_t send_uart_rkfifo;
  57. extern uint8_t Update_buf[150];
  58. extern bool radar_update_flag; // main函数中 是否进入升级标志
  59. extern uint32_t uart2_send_delay_time;
  60. extern uint32_t uart3_send_delay_time;
  61. void uart_send_msg(void);
  62. void UART_Init(void);
  63. void uart2_send_msg(uint8_t *data,uint8_t size);
  64. void uart3_send_msg(uint8_t *data,uint8_t size);
  65. void check_uart_data(rkfifo_t *fifo);
  66. bool uart_send_is_ok(uint8_t uart_num);
  67. void send_uartfifo_msg(void);
  68. void USER_UART_IRQHandler(UART_HandleTypeDef *huart);
  69. #endif