Serial은 Raspberry Pi-Pico의 디폴트 CDC이고 USBSer1 으로 하나 더 할당했다.
#include <Adafruit_TinyUSB.h>
#define LED LED_BUILTIN
// Create extra USB Serial Ports. "Serial" is already created.
Adafruit_USBD_CDC USBSer1;
void setup() {
pinMode(LED, OUTPUT);
USBSer1.begin(115200);
// start up all of the USB Vitual ports, and wait for them to enumerate.
Serial.begin(115200);
digitalWrite(LED, 1);
Serial.print("You are port 0\n\r\n0> ");
USBSer1.print("You are port 1\n\r\n1> ");
}
int LEDstate = 0;
int cnt = 0;
void loop() {
Serial.print("USBSer0->");
Serial.println(cnt);
USBSer1.print("USBSer1->");
USBSer1.println(cnt);
cnt++;
delay(1000);
}
구동 결과 USB 2 UART가 두개 인식은 되지만 데이터는 Serial에서만 출력된다.
코드를 찾아 보니 CFG_TUD_CDC 를 2로 설정 하라고 한다.
\Arduino\libraries\Adafruit_TinyUSB_Library\src\arduino\ports\rp2040\tusb_config_rp2040.h
//------------- CLASS -------------//
//#define CFG_TUD_CDC 1
#define CFG_TUD_CDC 2
수정후 다시 실행 하니 두개의 UART에서 데이터가 출력되는것을 확인 할 수 있다.
RP2040은 2개의 UART가 있으므로 USB2UART를 만들어도 좋을것 같다.
반응형