打印

STM32F407 使用SYSTICK中断,实现延时(不过不推荐大家使用,仅供参考)

[复制链接]
301|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
博斯|  楼主 | 2018-7-29 18:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天有客户搞中断延时,搞了半天没搞定,故花了几分钟,写了个demo,给需要的朋友参考。
代码如下:

[mw_shl_code=c,true]
vu32 timdelay=0;
void delay(u32 ntime)
{
        timdelay=ntime;
        while(timdelay);
}

//systick中断服务函数,使用OS时用到
void SysTick_Handler(void)
{         
        if(timdelay)timdelay--;
}
         
int main(void)
{

        SysTick_Config(SystemCoreClock/1000);
        //delay_init(168);                //初始化延时函数
        LED_Init();                        //初始化LED端口
        /**下面是通过直接操作库函数的方式实现IO控制**/         
        while(1)
        {
                GPIO_ResetBits(GPIOF,GPIO_Pin_9);          //LED0对应引脚GPIOF.9拉低,亮  等同LED0=0;
                GPIO_SetBits(GPIOF,GPIO_Pin_10);           //LED1对应引脚GPIOF.10拉高,灭 等同LED1=1;
                delay(500);                                                     //延时500ms
                GPIO_SetBits(GPIOF,GPIO_Pin_9);                   //LED0对应引脚GPIOF.0拉高,灭  等同LED0=1;
                GPIO_ResetBits(GPIOF,GPIO_Pin_10);         //LED1对应引脚GPIOF.10拉低,亮 等同LED1=0;
                delay(500);                             //延时500ms
        }
}[/mw_shl_code]

使用特权

评论回复

相关帖子

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

本版积分规则

412

主题

412

帖子

0

粉丝