2025-01-25 10:55:11 +01:00
|
|
|
#ifndef USART_H
|
|
|
|
#define USART_H
|
|
|
|
#include "fifo.h"
|
|
|
|
#include "baselayer.h"
|
|
|
|
/** @class Usart
|
|
|
|
* @brief Sériový port.
|
|
|
|
*
|
2025-01-26 16:50:07 +01:00
|
|
|
* Zde RS485, vstup i výstup.
|
|
|
|
* Při vysílání je zakázán příjem a to jak v software, tak v hardware.
|
|
|
|
* Tady u toho typu je pin řízení směru přenosu dělán čistě softwarově,
|
|
|
|
* překrytí je minimální, zdá se že to nevadí.
|
2025-01-25 10:55:11 +01:00
|
|
|
*/
|
|
|
|
class Usart : public BaseLayer {
|
|
|
|
FIFO<char, 64> tx_ring;
|
|
|
|
public:
|
|
|
|
explicit Usart (const uint32_t baud = 9600) noexcept;
|
|
|
|
uint32_t Down (const char * data, const uint32_t len) override;
|
2025-01-26 16:50:07 +01:00
|
|
|
|
|
|
|
void irq (void);
|
2025-01-25 10:55:11 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // USART_H
|