RISC-V/V203F6P6/usart/main.cpp
2025-02-01 21:38:31 +01:00

35 lines
1.2 KiB
C++

#include "system.h"
#include "gpio.h"
#include "usart.h"
#include "cdc_class.h"
#include "mirror.h"
/*********************************************************************************
Sériový port na CH32V203F6P6 je příklad jak by z dokumentace člověka klepla pepka.
Podle DS to má jen jeden sériový port, ale vývody USART1 nejsou nijak vyvedeny
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 má 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.
**********************************************************************************/
static GpioClass led (GPIOB, 8);
static Usart serial (9600);
static cdc_class cdc;
static Mirror top;
int main () {
led << true;
cdc.attach(serial);
cdc.init ();
top += cdc;
top -= serial;
for (;;) {
Delay_Ms(100);
led << false;
Delay_Ms(100);
led << true;
}
return 0;
}