api_uart.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef __API_UART_H__
  2. #define __API_UART_H__
  3. enum {
  4. HUART_TR_PA7 = 0,
  5. HUART_TR_PB2,
  6. HUART_TR_PB3,
  7. HUART_TR_PE7,
  8. HUART_TR_PF0,
  9. HUART_TR_PA6,
  10. HUART_TR_PB1,
  11. HUART_TR_PB4,
  12. HUART_TR_PE6,
  13. HUART_TR_PF1,
  14. HUART_TR_VUSB,
  15. };
  16. typedef struct {
  17. union {
  18. struct {
  19. uint8_t tx_port : 4;
  20. uint8_t rx_port : 4;
  21. uint8_t rxisr_en : 1;
  22. uint8_t txisr_en : 1;
  23. uint8_t rxbuf_loop : 1;
  24. uint8_t tx_1st : 1;
  25. };
  26. uint16_t all_setting;
  27. };
  28. uint16_t rxbuf_size;
  29. uint8_t *rxbuf;
  30. } huart_t;
  31. void huart_init(huart_t *huart, uint32_t baud_rate);
  32. void huart_exit(void);
  33. void huart_set_baudrate(uint baudrate);
  34. void huart_putchar(const char ch);
  35. void huart_tx(const void *buf, uint len);
  36. uint huart_get_rxcnt(void);
  37. void huart_rxfifo_clear(void);
  38. char huart_getchar(void);
  39. //UART
  40. typedef void (*isr_t)(void);
  41. void uart1_register_isr(isr_t isr);
  42. void uart1_putchar(char ch);
  43. void uart2_register_isr(isr_t isr);
  44. void uart2_putchar(char ch);
  45. //
  46. void uart2_key_mode(u32 baudrate);
  47. #endif // __API_UART_H__