Пытаюсь разобраться с USB.
Взял пример USB HOST MSC из библиотеки.
Он рассчитан на отладочную плату STM3240_41_G_EVAL, у меня ее нет. Зато есть другая отладочная плата, на ней стоит STM32F407 с кварцем, и все ноги выведены на пины. Есть пара светодиодов и кнопка.
Поэтому я закоментировал в примере все связанное с LCD, SDIO, и переправил светодиоды и кнопку на другие пины.
К А12 А12 подсоединил (~10см, если это важно) проводами USB-A разьем.
(т.е используется USB_FS)
Управление питанием не использую, +5в напрямую идет на разьем.
мейн выглядит так:
CODE
int main(void)
{
__IO uint32_t i = 0;
/* Init Host Library */
USBH_Init(&USB_OTG_Core,
#ifdef USE_USB_OTG_FS
USB_OTG_FS_CORE_ID,
#else
USB_OTG_HS_CORE_ID,
#endif
&USB_Host,
&USBH_MSC_cb,
&USR_cb);
while (1)
{
/* Host Task handler */
USBH_Process(&USB_OTG_Core, &USB_Host);
// добавил: ------------------------------
if(HCD_IsDeviceConnected(&USB_OTG_Core))
STM_EVAL_LEDOn(LED2);
else
STM_EVAL_LEDOff(LED2);
//-------------------------------------------
if (i++ == 0x10000)
{
STM_EVAL_LEDToggle(LED1);
//STM_EVAL_LEDToggle(LED2);
//STM_EVAL_LEDToggle(LED3); //убрал
//STM_EVAL_LEDToggle(LED4); //убрал
i = 0;
}
}
}
т.е почти как в оригинале, только убрал мигание 2-4 лэдов, и вставил проверку с выводом в лед2.
В итоге - лэд1 мигает, лэд2 - никак.
Этот пример вообще рабочий?
Может кто посмотрит? Или кинет свой рабочий пример?
Вижу один пин настраивается еще ввод какого-то оверкаррент, с прерыванием EXTI, и callback.
Я его не использовал, но ставил бряк на этом колбеке - вроде оно туда не попадает.
Есть еще несколько вопросов, но сначала надо чтобыхоть что-то заработало
Сообщение отредактировал IgorKossak - Dec 1 2012, 22:06
Причина редактирования: [codebox] для длинного кода!!!