static void prvSetupHardware(void) { ErrorStatus OSC4MStartUpStatus01; /* ST provided routine. */ /* MRCC system reset */ MRCC_DeInit(); /* Wait for OSC4M start-up */ OSC4MStartUpStatus01 = MRCC_WaitForOSC4MStartUp(); if(OSC4MStartUpStatus01 == SUCCESS) { /* Set HCLK to 60MHz */ MRCC_HCLKConfig(MRCC_CKSYS_Div1); /* Set CKTIM to 60MHz */ MRCC_CKTIMConfig(MRCC_HCLK_Div1); /* Set PCLK to 30MHz */ MRCC_PCLKConfig(MRCC_CKTIM_Div2); /* Enable Flash Burst mode */ CFG_FLASHBurstConfig(CFG_FLASHBurst_Enable); /* Set CK_SYS to 60 MHz */ MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15); } /* GPIO pins optimized for 3V3 operation */ MRCC_IOVoltageRangeConfig(MRCC_IOVoltageRange_3V3); /* GPIO clock source enable */ MRCC_PeripheralClockConfig(MRCC_Peripheral_GPIO, ENABLE); /* EXTIT clock source enable */ MRCC_PeripheralClockConfig(MRCC_Peripheral_EXTIT, ENABLE); /* TB clock source enable */ MRCC_PeripheralClockConfig(MRCC_Peripheral_TB, ENABLE); /* Initialize the demonstration menu */ LCD_Init(); LCD_DisplayString(Line1, "www.FreeRTOS.org", BlackText); LCD_DisplayString(Line2, " STR750 Demo ", BlackText); EIC_IRQCmd(ENABLE); }
/******************************************************************************* * Function Name : USB_Interrupts_Config * Description : configure and enable the USB interrupt Lines * Input : None. * Return : None. *******************************************************************************/ void USB_Interrupts_Config(void) { /* Enable and configure the priority of the USB_LP IRQ Channel*/ EIC_IRQInitStructure.EIC_IRQChannel = USB_LP_IRQChannel; EIC_IRQInitStructure.EIC_IRQChannelPriority = 5; EIC_IRQInitStructure.EIC_IRQChannelCmd = ENABLE; EIC_IRQInit(&EIC_IRQInitStructure); /* Enable and configure the priority of the USB_HP IRQ Channel*/ EIC_IRQInitStructure.EIC_IRQChannel = USB_HP_IRQChannel; EIC_IRQInitStructure.EIC_IRQChannelPriority = 7; EIC_IRQInitStructure.EIC_IRQChannelCmd = ENABLE; EIC_IRQInit(&EIC_IRQInitStructure); /* Enable the Interrupt controller to manage IRQ channel*/ EIC_IRQCmd(ENABLE); }
//--------------------------------------------------------------------------------------- void TIM0_Config() { TIM_InitTypeDef TIM_InitStructure; TIM_InitStructure.TIM_Mode = TIM_Mode_OCTiming; TIM_InitStructure.TIM_Prescaler = 60 - 1; TIM_InitStructure.TIM_ClockSource = TIM_ClockSource_Internal; TIM_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_InitStructure.TIM_Channel = TIM_Channel_2; TIM_InitStructure.TIM_Period = 25 - 1; TIM_Init(TIM0, &TIM_InitStructure); TIM_ClearFlag(TIM0, TIM_FLAG_OC1 | TIM_FLAG_OC2 | TIM_FLAG_Update); TIM_ITConfig(TIM0, TIM_IT_Update, ENABLE); TIM_Cmd(TIM0, ENABLE); EIC_IRQInitTypeDef EIC_IRQInitStructure; EIC_IRQInitStructure.EIC_IRQChannel = TIM0_UP_IRQChannel; EIC_IRQInitStructure.EIC_IRQChannelPriority = 1; EIC_IRQInitStructure.EIC_IRQChannelCmd = ENABLE; EIC_IRQInit(&EIC_IRQInitStructure); EIC_IRQCmd(ENABLE); }