查看: 3001|回复: 7

[项目] GD32创意设计方案大赛----使用定时器点亮红色的LED

[复制链接]
  • TA的每日心情
    开心
    2020-7-2 14:08
  • 签到天数: 99 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2015-7-4 22:04:06 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 damiaa 于 2015-7-4 22:05 编辑

    使用定时器需要以下几点:
    1,设置定时器参数,开启时钟电源
    2,开启定时器
    3,设置中断
    4,开启中断

    void TIM_Configuration(void)
    {
        TIMER_BaseInitPara TIM_TimeBaseStructure;
        NVIC_InitPara NVIC_InitStructure;
       NVIC_InitStructure.NVIC_IRQ = TIMER3_IRQn;
        NVIC_InitStructure.NVIC_IRQPreemptPriority = 0;
        NVIC_InitStructure.NVIC_IRQEnable = ENABLE;
        NVIC_Init(&NVIC_InitStructure);      
        RCC_APB1PeriphClock_Enable(RCC_APB1PERIPH_TIMER3,ENABLE);

            /* TIMER3  configuration */
        TIMER_DeInit(TIMER3);
        TIM_TimeBaseStructure.TIMER_Prescaler = 10-1;
        TIM_TimeBaseStructure.TIMER_CounterMode = TIMER_COUNTER_UP;
        TIM_TimeBaseStructure.TIMER_Period = 10000-1;
        TIM_TimeBaseStructure.TIMER_ClockDivision = TIMER_CDIV_DIV1;
        TIMER_BaseInit(TIMER3,&TIM_TimeBaseStructure);
        TIMER_ClearBitState( TIMER3 , TIMER_FLAG_UPDATE);
        TIMER_INTConfig(TIMER3, TIMER_INT_UPDATE, ENABLE);
        /* TIMER enable counter*/
        TIMER_Enable( TIMER3, ENABLE );               
    }
    使用GPIO需要以下几点:
    1,设置GPIO参数,开启时钟电源
    2,调用GPIO函数

    void GPIO_Configuration()
    {
        GPIO_InitPara GPIO_InitStructure;

              RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOC,ENABLE);
                
              GPIO_InitStructure.GPIO_Pin   = GPIO_PIN_10;
        GPIO_InitStructure.GPIO_Mode  = GPIO_MODE_OUT;
        GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
        GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
        GPIO_InitStructure.GPIO_PuPd  = GPIO_PUPD_NOPULL;
        GPIO_Init(GPIOC , &GPIO_InitStructure);

    }
    主程序中调用这两个函数初始化:这里延时没用,因为在中断里点亮LED

    void delayxms(uint16_t x)
    {
            uint16_t i,j;
            for(i=0;i<x;i++)
            {
                    for(j =0;j<1000;j++);
            }
    }        
    int main(void)
    {
                    GPIO_Configuration();
              //SysTick_Configuration();
        TIM_Configuration();        
                    while(1)
                    {

    //                        delayxms(1000);
    //                        GPIO_SetBits(GPIOC,GPIO_PIN_10);
    //                        delayxms(1000);
    //                        GPIO_ResetBits(GPIOC,GPIO_PIN_10);
                    }
    }

    GP32f1x0.it 里实行TIM3的中断函数
    void TIM3_IRQHandler(void)
    {

            if(TIMER_GetIntBitState(TIMER3,TIMER_INT_UPDATE)==ENABLE)
        {
                                    static uint8_t ledflag=0;
                        TIMER_ClearIntBitState(TIMER3,TIMER_INT_UPDATE);
                                    ledflag++;
                                    if(ledflag ==200)
                                    {        
                                            ledflag =0;
                                            GPIO_SetBits(GPIOC,GPIO_PIN_10);
                                    }               
                                    else
                                    {
                                            if(ledflag ==100)
                                            {               
                                                    GPIO_ResetBits(GPIOC,GPIO_PIN_10);
                                            }
                                    }

        }
            
    }

    这样就实行了一个定时器点亮LED的程序。希望大家支持。
    现在把源代码献上,希望大家喜欢:
    mytime.zip (1.2 MB, 下载次数: 20)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 15:56
  • 签到天数: 2675 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-7-4 23:19:25 | 显示全部楼层
    不错的分享,顶一个。

    点评

    谢谢。  发表于 2015-7-5 18:47
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-12-7 12:35
  • 签到天数: 1354 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-7-5 23:16:17 | 显示全部楼层
    参考和学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-15 09:28
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-7-6 10:28:52 | 显示全部楼层
    多谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-1-4 08:50
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2015-7-11 09:48:56 | 显示全部楼层
    真是手把手

    点评

    谢谢  发表于 2015-7-14 14:13
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-7-14 18:08
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-7-13 01:05:48 | 显示全部楼层
    这个定时时间是多少?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-7-2 14:08
  • 签到天数: 99 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2015-7-14 14:12:29 | 显示全部楼层
    若云流风 发表于 2015-7-13 01:05
    这个定时时间是多少?

    没细估算,你跑下就知道了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-1-4 08:50
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2015-7-14 16:09:50 | 显示全部楼层
    共同学习啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-2 05:40 , Processed in 0.183724 second(s), 31 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.