STM32F103 отключение USB

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 161
Зарегистрирован: Вс сен 29, 2013 21:14:20

Сообщение NemesiS2014 »

Кто разбирался с USB в STM32 помогите советом, везде в примерах пишут как инициализировать USB

Код: Выделить всё

     Set_USBClock();
	  USB_Interrupts_Config();
	  USB_Init();
А как сделать обратный процесс чтобы опять можно было управлять ножками DP и DM как GPIO? :roll:
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 274
Зарегистрирован: Пт мар 12, 2010 12:09:26
Откуда: Кемерово

Сообщение Andrew_KMR »

Так же как обычно, инитом портов на вход или выход, отключив тем самым альтернативные функции выводов.
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 161
Зарегистрирован: Вс сен 29, 2013 21:14:20

Сообщение NemesiS2014 »

Andrew_KMR писал(а):Так же как обычно, инитом портов на вход или выход, отключив тем самым альтернативные функции выводов.
Не отключается даже если выключить прерывания:

Код: Выделить всё

void USB_Interrupts_Disable(void)
{
NVIC_InitTypeDef NVIC_InitStructure;

  /* 2 bit for pre-emption priority, 2 bits for subpriority */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

  NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = DISABLE;
  NVIC_Init(&NVIC_InitStructure);
}
Отключить тактирование USB:

Код: Выделить всё

void Reset_USBClock(void)
{
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, DISABLE);
}
И сконфигурировать пины:

Код: Выделить всё

void USB_Pins_Off(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	/*Enable or disable APB2 peripheral clock */
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

	/*Configure GPIO pin */
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_11|GPIO_Pin_12;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOA, &GPIO_InitStruct);

	GPIO_WriteBit(GPIOA, 11,0);
	GPIO_WriteBit(GPIOA, 12,0);
}
И все равно пины УСБ порта остаются висеть в 3-ем состоянии :roll:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 161
Зарегистрирован: Вс сен 29, 2013 21:14:20

Сообщение NemesiS2014 »

Линейка STM32F10X_HD.
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «ARM»