furi-hal-uart.h 645 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <stddef.h>
  3. #include <stdint.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. typedef enum {
  8. FuriHalUartIdUSART1,
  9. FuriHalUartIdLPUART1,
  10. } FuriHalUartId;
  11. typedef enum {
  12. UartIrqEventRXNE,
  13. UartIrqEventIDLE,
  14. //TODO: more events
  15. } UartIrqEvent;
  16. void furi_hal_uart_init(FuriHalUartId ch, uint32_t baud);
  17. void furi_hal_uart_deinit(FuriHalUartId ch);
  18. void furi_hal_uart_set_br(FuriHalUartId ch, uint32_t baud);
  19. void furi_hal_uart_tx(FuriHalUartId ch, uint8_t* buffer, size_t buffer_size);
  20. void furi_hal_uart_set_irq_cb(FuriHalUartId ch, void (*cb)(UartIrqEvent ev, uint8_t data));
  21. #ifdef __cplusplus
  22. }
  23. #endif