RISC-V/V203F6P6/usart/main.cpp

36 lines
1.2 KiB
C++
Raw Normal View History

2025-01-26 16:50:07 +01:00
#include "system.h"
#include "gpio.h"
#include "usart.h"
2025-02-01 21:38:31 +01:00
#include "cdc_class.h"
#include "mirror.h"
2025-01-26 16:50:07 +01:00
/*********************************************************************************
Sériový port na CH32V203F6P6 je příklad jak by z dokumentace člověka klepla pepka.
Podle DS to jen jeden sériový port, ale vývody USART1 nejsou nijak vyvedeny
2025-02-01 21:38:31 +01:00
z pouzdra. Tak zkusíte USART2, a ejhle, ono to funguje.
Pro testování USB v režimu device to bylo předěláno na převodník USB na RS485.
Funguje nastavení baudové rychlosti, ostatní parametry jsou ignorovány a pevně
na 8 bitů 1 stop, bez parity. USB jen jedinou třídu CDC, původní zdroj je
šíleně komplikovaný, takže je to zabaleno do knihovny libusbd.a, vnitřkem tedy
celkem není nutné se zabývat.
2025-01-26 16:50:07 +01:00
**********************************************************************************/
static GpioClass led (GPIOB, 8);
2025-02-01 21:38:31 +01:00
static Usart serial (9600);
static cdc_class cdc;
static Mirror top;
2025-01-26 16:50:07 +01:00
int main () {
led << true;
2025-02-01 21:38:31 +01:00
cdc.attach(serial);
cdc.init ();
top += cdc;
top -= serial;
2025-01-26 16:50:07 +01:00
for (;;) {
2025-02-01 21:38:31 +01:00
Delay_Ms(100);
led << false;
Delay_Ms(100);
led << true;
2025-01-26 16:50:07 +01:00
}
return 0;
}