Здравствуйте. Моя задача такова: по spi принимать/отдавать данные с АЦП и по usb передавать принятые данные на hyperterminal на компе(комп должен видеть плату как виртуальный com порт) на плате stm32f4discovery. По отдельности спи и виртуальный com порт работают нормально, но вместе com порт не инициализируется, а комп видит плату как неисправное usb устройство. Помогите разобраться в чем может быть проблема т.к. ноги otg и spi-шные не пересекаются, вроде сто раз проверил(spi3 - PC10, PC11, PC12), просто ума не приложу в чем может быть проблема.
Код main для организации виртуального com порта и вывод напечатанных символов с клавы на терминал:
Код
#include "stm32f4xx.h"
#include "usbd_cdc_vcp.h" // подключаем USB CDC
__ALIGN_BEGIN USB_OTG_CORE_HANDLE USB_OTG_dev __ALIGN_END;
const char ch3[]="receive 3\x0D\x0A";
const char ch4[]="получено 4\x0D\x0A";
char ch5[]="receive 5\x0D\x0A";
char ch6[]="receive 6\x0D\x0A";
int main(void)
{
SystemInit(); // настройки тактирования
// включаем usb
USBD_Init(&USB_OTG_dev,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_CDC_cb,&USR_cb);
while (1){
if(usb_cdc_kbhit()){ // проверка: приняты данные?
char c;
c = usb_cdc_getc(); // получение байта с usb
switch(c){ // разбор принятого символа
case '3':
usb_cdc_printf((char *)ch3); // строки на хост
break;
case '4':
usb_cdc_printf((char *)ch4);
break;
case '5':
usb_cdc_printf(ch5);
break;
case '6':
usb_cdc_printf(ch6);
break;
}
}
}
}
прикрепляю полный проект на кокосе, proba6 главный
Прикрепленные файлы
______.rar ( 461.15 килобайт )
Кол-во скачиваний: 38