/*******************************************************************************
函数名:void BSP_Delay_Initial(void )
功能:time2计数功能初始化(通过time2计数来产生延时功能)
输入参数:无
输出参数:无
*******************************************************************************/
void BSP_Delay_Initial(void )
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);
TIM_TimeBaseStructure.TIM_Period = 1; //自动装载 此句可以去掉 因为没有使用自动重载功能
TIM_TimeBaseStructure.TIM_Prescaler = 41; //42M/41+1分频率到1MHz 则TIM2的时钟频率为2M
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down; //向下计数
TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure);
}
/*******************************************************************************
函数名:void BSP_Delay1us(uint16_t delayTime)
功能:产生uS级别的延时功能
输入参数:uint16_t delayTime
输出参数:无
*******************************************************************************/
void BSP_Delay1us(uint16_t delayTime)
{
uint16_t TIMCounter = delayTime*2;
TIM_Cmd(TIM5, ENABLE);
TIM_SetCounter(TIM5, TIMCounter);
while (TIMCounter>=1)
{
TIMCounter = TIM_GetCounter(TIM5);
}
TIM_Cmd(TIM5, DISABLE);
}