soft_uart.h 837 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef __SOFT_UART_H
  2. #define __SOFT_UART_H
  3. #include "stdbool.h"
  4. #include "stdio.h"
  5. #include "stm32f4xx_hal.h"
  6. #include "stm32f4xx_hal_uart.h"
  7. #define MAX_UART_BUF 256
  8. enum vk_update_device
  9. {
  10. // Update_buf 元素地址
  11. HEAD = 0,
  12. LEN = 1,
  13. SYSTEM_ID = 3,
  14. TOTAL_PACK_NUM = 2,
  15. GROUP_ID = 4,
  16. MSGID_ID = 5,
  17. PAYLOAD = 6,
  18. //更新步骤
  19. UPDATE_START = 200,
  20. UPDATE_ING = 201,
  21. UPDATE_END = 202,
  22. };
  23. typedef struct {
  24. uint8_t data[MAX_UART_BUF];
  25. bool usebuf_flag;
  26. } Update;
  27. extern Update update;
  28. extern bool update_complete;
  29. extern uint8_t FMU_uart_buf[MAX_UART_BUF];
  30. void uart1_send_msg(uint8_t *data, uint8_t size);
  31. void Update_ack_fmu(uint8_t msg_id, uint8_t *ackbuf);
  32. void update_function(void);
  33. void USER_UART_IRQHandler(UART_HandleTypeDef *huart);
  34. bool check_usart_is_ok(void);
  35. #endif