Я пытался скомпилировать простой пример USB-клавиатуры для моего STM32 Nucleo F303K8 (я следовал за примерами на https://os.mbed.com/handbook/USBKeyboard а также https://www.hackerspace-ntnu.no/wiki/tutorials/mbed/mbed-keyboard-en/)
В основном весь мой main.cpp
является:
#include "mbed.h"#include "USBKeyboard.h"
USBKeyboard keyboard;
int main(void) {
while (1) {
wait(1);
keyboard.printf("Test");
}
}
Однако после компиляции мне сказали
Error: Identifier "PCD_HandleTypeDef" is undefined in "USBDevice/USBDevice/USBHAL.h", Line: 134, Col: 6
Эта конкретная ошибка скопирована из моего проекта на https://os.mbed.com/compiler — Я также попытался построить из локального проекта в VSCode (используя плагин PlatformIO), и я получил ту же проблему. Без библиотеки mDB USBDevice я могу скомпилировать нормально из обеих IDE.
Кто-нибудь знает, почему это может происходить? Нужно ли импортировать что-то еще?
Вы столкнулись с этой ошибкой, поскольку цель NUCLEO_F303K8 не поддерживается в библиотеке USBDevice. Для Mbed 2 вы можете увидеть, как нет папки, доступной для F303K8 в этом каталоге здесь, а для Mbed OS 5 вы можете видеть, что цель F303K8 не поддерживается в соответствии с USBHAL_STM32.h файл.
Других решений пока нет …