RISC-V/V203F6P6/common/usart.h

26 lines
815 B
C
Raw Normal View History

2025-01-25 10:55:11 +01:00
#ifndef USART_H
#define USART_H
#include "fifo.h"
#include "baselayer.h"
2025-02-01 21:38:31 +01:00
#include "ctrlinterface.h"
2025-01-25 10:55:11 +01:00
/** @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
*/
2025-02-01 21:38:31 +01:00
class Usart : public BaseLayer, public CDC_CtrlInterface {
2025-01-25 10:55:11 +01:00
FIFO<char, 64> tx_ring;
public:
2025-02-01 21:38:31 +01:00
explicit Usart (const uint32_t baud = 9600) noexcept;
void setBaud (const uint32_t baud);
uint32_t Down (const char * data, const uint32_t len) override;
bool IOCtrl (const CTRL_TYPES_DEF type, const void * 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