1.21学习计划

认真你就输了,一直认真你就赢了。

1、任务计划

    (1)看完外部中断的教学视频
    (2)使用STM32编写外部中断的程序
    (3)看通用定时器基本原理讲解

2、计划完成度

    (1)今天视频分了两部分,1、外部中断的一般配置过程,2、根据1步骤编写外部中断实验。
    外部中断一般配置过程有7个步骤:
    [1]使能SYSCFG时钟;
    [2]初始化IO口为输入;   GPIO_Init
    [3]设置IO口与中断线的映射关系;   void SYSCFG_EXTILineConfig();
    [4]初始化线上中断,设置触发条件等; EXTI_Init();
    [5]配置终端分组(NVIC)并使能中断;  NVIC_Init();
    [6]编写中断服务函数;  EXTI_IRQHandeler();
    [7]清除中断标志位;  EXTI_ClearITPendingBit();
    (2)根据视频的教学,比较成功的编写了一个外部中断实验的程序。
    这里和之前写的跑马灯实验、按键实验、按键跑马灯实验也是有很多的相似之处的,我们就可以在按键实验的基础上,添加一个exti.C和exti.h就好了,注意新建之后要加到相应的路径中去。
    [1]exti.h和之前写的led.h、key.h一样,定义一下EXTI_H,然后把外部中断的初始化放在里面就好了。
       exti.c先要include需要用到的头文件。比如这里是外部中断,需要按键触发,所以要加key.h进来。
    [2]对照着(1)的步骤编写中断程序。需要注意的有:
    *如EXTI_Init()函数(初始化线上中断),入口参数为指针类型,所以要在相应的函数开头就要定义个变量EXTI_InitTypeDef  EXTI_InitStruct,之后在EITI_Init()取地址就好&EXTI_InitStruct。接着就在初始化函数的上面,去初始化结构体类型的每个成员变量。
    *触发方式有三种:上升沿触发、下降沿触发、边沿触发。我们可以根据实际电路进行判断KEYx是上拉输入,还是下拉输入,以此决定触发方式。
    比如KEY0是上拉输入。没有按下的时候是高电平,按下键就是低电平,我们就可以采用下降沿触发。
    *一涉及中断,必然会有优先级的问题。抢占优先级和响应优先级首先是根据main函数设置的优先分组,对照着STM32的优先级分组表,我们可以知道抢占优先级和响应优先级是怎么分组的。在exti.c文件中编写NVIC的成员变量的时候,就会知道怎么去设置抢占优先级和响应优先级的参数。
    这边还应该要注意的就是数制问题了,一定要分清楚是二进制、十进制,还是16进制。
    *void EXTI4_IRQHandler(void)是没有入口参数,也没有返回值的,所以()中要写void。其中EXTI4_IRQHandler在启动文件CORE中。
    *main.c就和之前一样步骤,先include对应着HARDWARE的头文件,在初始化需要用到的头文件,接着就可以写运行的函数了~
    (3)通用定时器的基本原理,主要是从三个方面来讲的,1、三种定时器的区别,2、通用定时器的特点,3、通用定时器工作过程。
    [1]三种定时器包括高级定时器、通用定时器和基本定时器。
    *高级定时器可以产生带编程死区的互补输出;
    *通用定时器可以用来计时计数,PWM输出,输入捕获和输出比较。
    *基本定时器只能计时,所以主要应用于驱动DAC。
    [2]通用定时器的特点是就通用TIMx(TIM2-TIM5)展开的。
    *16位(TIM3和TIM4)或32位(TIM2和TIM5)递增、递减和递增/递减自动重载计
数器。
    *16位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于1到65536之间。
    *4个独立通道(TIMx_CH1~4),可用于输入捕获、输出比较、PWM生成(边沿和中心对齐模式)、单脉冲模式输出;
    ~使用外部信号控制定时器且可实现多个定时器互连的同步电路。
    ~发生如下事件时生成中断/DMA请求:
    ~更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)
    ~触发事件(计数器启动、停止、初始化或通过内部/外部触发计数)
    ~输入捕获 
    ~输出比较
    ~ 支持定位用增量(正交)编码器和霍尔传感器电路
    ~外部时钟触发输入或者周期电流管理。
    [3]通用定时器的工作过程,也是在TIM2-TIM5展开的。工作区分为五部分:
    *时钟源。有4大类来源:内部时钟、内部触发输入、外部引脚、外部捕捉比较引脚。
    *实际电路。主要由预分频器、计数器、寄存器组成。
    *输入捕获。
    *输出比较。与输入捕获的通道相对应。
    *相关寄存器。可以进行捕获/比较。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值