Ich habe versucht, einige grundlegende usb-Kommunikation mit einer USB-Maus mit meinem stm32f4 Discvery. Es gibt keine USB-Beispiele für mein Board, also ging ich zu anderen Boards.stm32cube, USB-Host, versteckte Maus/Tastatur
stms Cube-Bibliothek Thingy versprochene einfache Entwicklung und alle, so habe ich ein Projekt mit Cube einschließlich USB_OTG_FS im Host-Only-Modus und vier IO-Pins für LEDs generiert. Ich habe mir die Dateien angeschaut und es schien als wäre das Lesen von Maustasten ziemlich trivial, aber ich kann es nicht funktionieren lassen. wenn ich
devtype = USBH_HID_GetDeviceType(&hUsbHostFS);
laufen erkennt sie das Gerät korrekt.
USBH_HID_MouseInit(&hUsbHostFS)
kehrt USBH_OK, aber egal was ich versuche
mouse=USBH_HID_GetMouseInfo(&hUsbHostFS);
ist immer NULL
"USBH_HID_MouseInit" wird nie in der Dokumentation (DM00105256.pdf) erwähnt auch, nur die RTOS-Beispiele verwenden sie. Wenn man das Beispiel des USB-Host-Standalone liest, würde es so aussehen, als würde man mit einer Maus kommunizieren, indem man GetDeviceType ausführt und GetMouseInfo abfragt, aber ich kann es nicht zum Laufen bringen.
Dies ist der Code ich hinzu, ist es in der Haupt ausgeführt, während
if(Appli_state == APPLICATION_READY){
switch(state)
{
case 0:
devtype = USBH_HID_GetDeviceType(&hUsbHostFS);
if(devtype == HID_MOUSE){
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_14,1);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_12,0);
state=1;
}
else if(devtype == HID_KEYBOARD){
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_14,0);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_12,1);
state=2;
}
else{
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_14,0);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_12,0);
}
break;
case 1:
if(USBH_HID_MouseInit(&hUsbHostFS)==0){
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_15,1);
state=3;
}
else {
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_15,0);
state=0;
}
break;
case 3:
mouse=USBH_HID_GetMouseInfo(&hUsbHostFS);
if(mouse != NULL)HAL_GPIO_WritePin(GPIOD,GPIO_PIN_13,1);
else HAL_GPIO_WritePin(GPIOD,GPIO_PIN_13,0);
break;
default:
break;
}
}
if(Appli_state != APPLICATION_READY) state=0;
Rest des Codes ist unverändert. wie ich schon sagte bevor es die Verbindung erkennt und ob es sich um eine Maus, Tastatur oder ein unbekanntes Gerät handelt. Ich kann es einfach nicht kommunizieren