1.22学习计划

当我穿过荆棘时,就看到了光芒~

1、任务计划

    (1)总结昨天学到的知识以及感悟
    (2)看完定时器中断实验的视频
    (3)编写定时器中断的程序

2、计划完成度

    (1)学习完了之后,总结一下思路和要点还是很有必要的。加油哦~
    (2)定时器中断的教学视频分为三部分讲的。1、通用定时器知识回顾(主要讲时钟源、时计电路部分),2、常用寄存器和库函数配置,3、写定时器中断实验
    第一部分是通用定时器的概述,但是这边主要讲时钟源、时计电路部分,比较细致也比较深入。
    [1]时钟选择。就像昨天总结的,一共四大类;
    1)内部时钟(CK_INT)
    2)外部时钟模式1:外部输入脚(TIx)
    3)外部时钟模式2:外部触发输入(ETR),仅适用于TIM2、TIM3、TIM4
    4)内部触发输入(ITRx):使用A定时器作为B定时器的预分频器(A为B提供时钟)。
    [2]内部时钟选择。这里就可以根据定时器的内部结构图来分析了。
    除非APB1的分频系数是1,否则通用定时器的时钟等于APB1时钟的2倍。
    默认调用SystemInit的函数情况下:SYSCLK=168M,
                                           AHB时钟=168M;
                                           APB1时钟=42M;
       APB1的分频系数=AHB/n=4,!=1,所以CK_INT=2X42M=84M;
                                            CK_CNT=84/N;
    [3]向上计数模式。这里比昨天讲的更细致一些。是假定时钟分频因子=1的情况下的。然后向下计数、中央对齐模式原理相似。
    第二部分是通用定时器的常用寄存器和库函数。
    [1]先是寄存器的部分:
    *计数器当前值寄存器CNT(TIMx_CNT
    *DMA/中断使能寄存器(TIMx_DIER)
    *预分频寄存器(TIMx_PSC)
    *自动重装载寄存器(TIMx_ARR)
    *控制寄存器1(TIMx_CR1)
    [2]常用的库函数:
    *定时器参数初始化voidTlM_TimeBaseInit(TIM_TypeDefTIMx,
    TIM_TimeBaseInitTypeDef*TlM_TimeBaseInitStruct) ;
    *定时器使能函数
    void TlM_Cmd (TIM_TypeDef*TIMx,FunctionaIState NewState)
    *定时器中断使能
    TIM_ITConfig (TIM3,TIM_IT_Update,ENABLE);
    *状态位的获取和清除
    除此之外,还学习了定时器中断的实现步骤:
    [1]使能定时器时钟
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TlMx,ENABLE) ;
    [2]初始化定时器,配置ARR,PSC。   voidTIM _TimeBaselnit ( ) ;
    [3]开启定时器中断,配置NVIC。    NVIC_Init ( );
    [4]使能定时器TIM_Cmd ( ) ;   
    [5]编写中断服务函数    void TIM3_IRQHandler(void)。
    (3) 因为之前已经学习过跑马灯的实验了,我们可以在原来的跑马灯的基础上进
行编写。今天晚上只写了一部分,明天都写完了,我一起把程序进行总结吧~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值