2.3
MM32F0270 USB支持从Suspend模式下唤醒
MM32F0270 可通过EXti线 18连接到 USB总线挂起中断实现USB从挂起状态唤醒。
需要使用唤醒时,需要使能相应的USB中断外,还需配置EXTI 18以使能相关的功能。
相关的寄存器与控制状态位的控制与查询,可以参考MM32F0270的用户手册。
3
USB进入Suspend与Res ume的软硬件设计
3.1
在库函数版本的样例中可以通过如下顺序初始化USB
a.
配置系统时钟为48MHz或96Mhz,使能GPIOA时钟,使能USB时钟
void USB_clockConfig(void)
{
USB_HSI48M_Config();
Set_CRS(); // The calibration of vibration
// Select USBCLK source
// RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_Div2); //IF SYSCLK is 96MHz
// Enable USB clock
RCC_APB1PeriphClockCmd(RCC_APB1ENR_USB, ENABLE);
}
b.
配置USB D+和D-所需用到的GPIO引脚,使用GPIO_Configuration函数
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit(&GPIO_InitStruct);
RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);
// USB_DISCONNECT used as USB pull-up
GPIO_InitStruct.GPIO_Pin = USB_DISCONNECT_PIN;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_FLOATING;
GPIO_Init(USB_DISCONNECT, &GPIO_InitStruct);
}
|