江科大stm32视频学习笔记——中断的应用:对射式红外传感器计次&旋转编码器计次

目录

一、中断系统的结构框图及硬件介绍

1.1 外部中断结构

1.2 硬件介绍

 二、对射式红外传感器计次

2.1 硬件连接图

2.2 代码 

CountSensor.c

main.c

2.3 bug调试 

三、旋转编码器计次

3.1 硬件连接图 

3.2 代码 

Encoder.c 

main.c

3.3 bug调试


一、中断系统的结构框图及硬件介绍

1.1 外部中断结构

GPIO:(A-G)有多个分组,每组有16个引脚

AFIO:只有一组线到EXTI,AFIO在中间充当数据选择器

EXTI:用来检测其配置的引脚电平变化,并将信息发送到NVIC

NVIC:配置中断优先级,根据优先级顺序传至CPU进行处理

1.2 硬件介绍

 二、对射式红外传感器计次

2.1 硬件连接图

2.2 代码 

  • CountSensor.c

    //第一步:配置RCC时钟,把涉及外设的时钟都打开
    //第二步:配置GPIO,设置为输入模式
    //第三步:配置AFIO,选择某个GPIO口连接到EXTI(边缘检测及控制器)
    //第四步:配置EXTI(不需要开启时钟,原因不详),选择边沿触发方式和触发响应方式
    //边沿触发方式:上升沿、下降沿、或者双边沿,触发响应方式:中断响应和事件响应
    //第五步:配置NVIC(内核的外设,不需要开启时钟),给中断选择一个合适的优先级
 

#include "stm32f10x.h"                  // Device header
 
uint16_t CountSensor_Count;
 
void CountSensor_Init(void)
{
    //开启外设时钟,EXTI和NVIC自动开启,无需设置
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    
    //配置GPIO
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
    
    //配置AFIO的数据选择器,选择想要的中断引脚
    GPIO_EXTILineConfig
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值