Keyboard, Disk Composite Device 로 Key 값을 설정 하는 방법외 CDC 로 설정하면 좀더 편리 하지 않을까?
키보드 + 시리얼 로 동작하게 해서 시리얼 포트로는 데이터 세팅 하도록 하는 코드 작성해 보았다.
스위치 누르면 키값을 전송하도록 했는데 keyboard_ramdisk.ino와 다른 현상이 발생한다.
if (digitalRead(PIN_BUTTON1) == 0 )
{
if(flag == 0)
{
flag = 1;
keycode = hidcode[0];
usb_hid.keyboardReport(report_id, modifier, &keycode);
Serial.print("press=");
// delay a bit before attempt to send keyboard report
delay(50);
usb_hid.keyboardRelease(0);
}
}
else
{
if(flag == 1)
{
flag = 0;
Serial.println("unpress");
}
}
스위치를 누르면 'a'가 입력되어야 하는데...
"aea" 3개의 키값이 전송된다.
aea
레포트데이터가 3바이트 인가?
3바이트가 맞고 실제 데이터는 바이트 1에 넣어서 보내야 키 하나가 전송 된다.
if (digitalRead(PIN_BUTTON1) == 0 )
{
if(flag == 0)
{
flag = 1;
keycode[1] = hidcode[1];
usb_hid.keyboardReport(report_id, modifier, keycode);
Serial.print("press=");
// delay a bit before attempt to send keyboard report
delay(50);
usb_hid.keyboardRelease(0);
}
}
else
{
if(flag == 1)
{
flag = 0;
Serial.println("unpress");
}
}
반응형