打印

关于定时器延时(和systick一样延时毫秒和微秒)

[复制链接]
795|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1349236685|  楼主 | 2017-12-11 21:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于定时器延时(和systick一样延时毫秒和微秒),为什么我写的不行呢
void timdelay_init(void)
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
        RCC_APB1PeriphClockCmd  (RCC_APB1Periph_TIM7,ENABLE);
        TIM_TimeBaseInitStruct.TIM_Prescaler=72-1;
        TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
        TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseInit (TIM7,&TIM_TimeBaseInitStruct);
}

void timdelay_us(int nus)
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
        TIM_TimeBaseInitStruct.TIM_Period=nus;
        TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
        TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseInit (TIM7,&TIM_TimeBaseInitStruct);
        TIM_SelectOnePulseMode(TIM7,TIM_OPMode_Single);
        TIM_Cmd  (TIM7,ENABLE);
        
        while(TIM_GetFlagStatus(TIM7,TIM_IT_Update)==RESET);
        TIM_ClearFlag(TIM7,TIM_IT_Update);
}

相关帖子

沙发
airwill| | 2018-1-14 14:40 | 只看该作者
应该是可以的, 不知道这个 TIM7 是否支持 OnePulseMode 有问题, 或者需要中断服务的支持的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

71

帖子

0

粉丝