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 má 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 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.
|
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;
|
|
|
|
}
|