嵌入式实验报告-宗子轩
17
院 系: 计算机科学学院
专 业: 自动化 __
年 ISTR_SUSP & wInterrupt_Mask)
{
if (fSuspendEnabled)
{ Suspend(); }
else
{Resume(RESUME_LATER);}
_SetISTR((u16)CLR_SUSP);
#ifdef SUSP_CALLBACK
SUSP_Callback();
#endif
}
#endif
#if (IMR_MSK & ISTR_SOF)
if (wIstr & ISTR_SOF & wInterrupt_Mask)
{_SetISTR((u16)CLR_SOF);
bIntPackSOF++;
#ifdef SOF_CALLBACK
SOF_Callback();
#endif
3
}
#endif
#if (IMR_MSK & ISTR_ESOF)
if (wIstr & ISTR_ESOF & wInterrupt_Mask)
{_SetISTR((u16)CLR_ESOF);
#ifdef ESOF_CALLBACK
ESOF_Callback();
#endif
}
#endif
#if (IMR_MSK & ISTR_CTR)
if (wIstr & ISTR_CTR & wInterrupt_Mask)
{ CTR_LP();
#ifdef CTR_CALLBACK
CTR_Callback();
#endif
}
#endif
} /* USB_Istr */
5、——该文件用于实现相关设备的USB协议,例如初始化、SETUP包、IN包、OUT包等等。
6、——该文件中包含处理上电、调电、挂起和恢复事件的函数,
7、——该文件中包含系统配置的函数,和处理游戏杆动作的函数。其中,Set_System函数用于配置时钟、通用端口;Set_USBClock函数用于配置USB端口时钟;USB_Interrupts_Config函数用于配置USB中断;USB_Cable_Config函数配置USB电缆状态;JoyState函数用于获取游戏杆的状态;Joystick_Send用于向USB端口传送游戏杆的事件。
void Set_System(void)
{ GPIO_InitTypeDef GPIO_InitStructure;
RCC_DeInit();
4
/* Enable HSE */
RCC_HSEConfig(RCC_HSE_ON);
/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2);
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);
/* ADCCLK = PCLK2/6 */
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
/* PLLCLK = 8MHz * 9 = 72 MHz */
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
/* Enable PLL */
RCC_PLLCmd(ENABLE);
/* Wait till PLL is ready */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
/* Select PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSourc
最新嵌入式实验报告-宗子轩 来自淘豆网m.daumloan.com转载请标明出处.