furi-hal-console.h 880 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include <stddef.h>
  3. #include <stdint.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. typedef enum {
  8. UartIrqEventRXNE,
  9. UartIrqEventIDLE,
  10. //TODO: more events
  11. } UartIrqEvent;
  12. void furi_hal_console_init();
  13. void furi_hal_console_tx(const uint8_t* buffer, size_t buffer_size);
  14. void furi_hal_console_tx_with_new_line(const uint8_t* buffer, size_t buffer_size);
  15. /**
  16. * Printf-like plain uart interface
  17. * @warning Will not work in ISR context
  18. * @param format
  19. * @param ...
  20. */
  21. void furi_hal_console_printf(const char format[], ...);
  22. void furi_hal_console_puts(const char* data);
  23. void furi_hal_usart_init();
  24. void furi_hal_usart_deinit();
  25. void furi_hal_usart_set_br(uint32_t baud);
  26. void furi_hal_usart_tx(const uint8_t* buffer, size_t buffer_size);
  27. void furi_hal_usart_set_irq_cb(void (*cb)(UartIrqEvent ev, uint8_t data));
  28. #ifdef __cplusplus
  29. }
  30. #endif