中级会员
 
- 积分
- 202
- 金钱
- 202
- 注册时间
- 2016-1-23
- 在线时间
- 31 小时
|

楼主 |
发表于 2016-5-2 18:23:13
|
显示全部楼层
本帖最后由 nngogogo 于 2016-5-2 18:25 编辑
代码是从TIM1_ETR改过来的 可能注释有些还是TIM1 望周知 谢谢
[mw_shl_code=c,true]//使用TIM8 ETR作为外部模式二输入
//使用GPIOA.0口
//
void TIM8_ETR_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|
RCC_APB2Periph_TIM8, ENABLE); //使能GPIOA时钟 TIM1时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //输入模式
GPIO_Init(GPIOA,&GPIO_InitStructure);
//配置定时器1 TIM1
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_Period =0XFFFF;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM8,&TIM_TimeBaseStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM8_UP_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_ITConfig(TIM8, TIM_IT_Update, ENABLE);
TIM_ETRClockMode2Config(TIM8, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted,0);
TIM_SetCounter(TIM8,0);
TIM_Cmd(TIM8,ENABLE);
}
//定时器1 TIM1中断
void TIM8_UP_IRQHandler()
{
if(TIM_GetITStatus(TIM8, TIM_IT_Update) != RESET) //检查TIM1是否发生了更新中断
{
TIM_ClearITPendingBit(TIM8, TIM_IT_Update); //清除TIM1更新中断位
TIM_SetCounter(TIM8,0);
Total_CNT += 0XFFFF;
}
}[/mw_shl_code] |
|