【STM32】红外对射计数器计数原理和代码
产品的介绍以及注意事项:
程序展示:
采用外部中断的方式进行计数,每触发一次中断计一个数
bsp_countsensor.c文件
#include "bsp_countsensor.h"// Device headeruint16_t CountSensor_Count;void CountSensor_Init(void)
{NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource5);EXTI_InitStructure.EXTI_Line = EXTI_Line5;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_Init(&EXTI_InitStructure);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;//外部中断线5-9中断NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_InitStructure);
}uint16_t CountSensor_Get(void)
{return CountSensor_Count;
}void EXTI9_5_IRQHandler(void)
{if (EXTI_GetITStatus(EXTI_Line5) == SET){CountSensor_Count ++;EXTI_ClearITPendingBit(EXTI_Line5);}
}
bsp_countsensor.h文件
#ifndef __BSP_COUNT_SENSOR_H
#define __BSP_COUNT_SENSOR_H#include "stm32f10x.h"
void CountSensor_Init(void);
uint16_t CountSensor_Get(void);#endif
main.c 添加相应的头文件,完成初始化后直接打印CountSensor_Get()函数即可
【STM32】红外对射计数器计数原理和代码相关推荐
- STM32 外部中断详解(原理+配置代码)
本文介绍了STM32基于标准外设库的外部中断配置,以及基于参考手册如何更加寄存器配置外部中断 文章目录 1 前言 2 STM32的外部中断 3 中断服务函数的映射关系 4 外部中断的配置 5 寄存器的 ...
- 基于STM32红外计数的灯光照明
小作品简介 这个小作品通过两个红外计数模块来检测物体运动的方向,从而计算出"房间"的人数.同时通过一个光敏电阻检测环境光线的强度.若光线较暗且房间有人时,则打开LED照明.否则,熄 ...
- STM32红外寻迹小车
STM32红外寻迹小车(寄存器版) 最近学习了STM32,想通过制作一辆小车来加深对STM32的理解,在平时学习时经常用正点原子提供的源代码稍加该装就行,但是正点原子没有提供关于红外寻迹模板的相关程序 ...
- ESP32实现红外遥控 红外发射与接收实现原理
文章目录 一,原理 1.1 概括 1.2,时钟 1.3,认识 item 1.4,发射/接收器 1.5 电路原理图 1.5.1,发射电路 1.5.2 ,接收电路 二,红外发射 2.1 整体的思路 2.2 ...
- 面向应用学习stm32(6)-TIM基本定时器-计数计时
前导:本文的目的与,意在于面向应用的学习单片机,故不会涉及太多的原理知识,例如寄存器之类的. 主要目的在于面向应用的学习单片机,学会单片机的基础用法,开发板采取野火的指南者f103. 作者大二小白,写 ...
- java 计数器_java并发之计数器CountDownLatch原理
java并发之计数器CountDownLatch原理 CountDownLatch简介 CountDownLatch顾名思义,count + down + latch = 计数 + 减 + 门闩(这么 ...
- 单片机两个正玄波信号的相位差计算_51单片机的定时器/计数器的原理与使用
CPU时序的有关知识 振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期) 状态周期:2个振荡周期为1个状态周期,用S表示.振荡周期又称S周期或时钟周期. 机器周期:1个机器周期含6 ...
- 4线电子围栏安装示意图_红外对射、电子围栏、振动光纤、智能警戒4种常用的周界安防系统...
前言 最近有朋友咨询周界安防的系统方案,其实现在主流的周界安防系统方案主要有红外对射,电子围栏,振动光纤以及智能警戒摄像头常用的4种方式. 正文 1.红外对射 红外报警系统由前端探测器.中间传输部分和 ...
- CD4017 十进制计数器工作原理及应用大全(不断更新中......)
CD4017 十进制计数器工作原理及应用大全 CD4017是一种十进制计数器/脉冲分配器.具有10个译码输出端,CP.CR.INH输入端.计数输入端CP的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上 ...
- 毕业设计 stm32公交刷卡乘客计数系统 - 物联网 单片机
基于STM32单片机的刷卡计数系统 STM32F103RCT6单片机最小系统+ESP8266无线传感模块+RFID-RC522射频识别模块2+E18-D50NK红外感应模块2+GPS定位模块. 采用S ...
最新文章
- 聪明的程序员用Delphi,真正的程序员用C++,偷懒的程序员用PowerShell
- android 4.x环境搭建
- python partition只能切割一次吗_Python3的字符串方法
- Android studio断点调试(全在这里)
- Deprecated: Function ereg_replace() is deprecated
- [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05)
- unity 导入gltf_基于gltf的GPU蒙皮动画(一)
- java实验报告2013_java实验报告4
- css如何设置div中的内容垂直居中?
- 截取网页中的Flash
- 使用 SetProcessWorkingSetSize 降低程序内存
- 微信小程序——mock.js模拟后台交互
- 【小程序源码】经典语录大全多种分类语录
- SQL文件的导入与导出
- 程序员笔记工具 cherrytree
- html中确认密码怎么,HTML确认密码
- 银行RPA的5个案例场景展示
- 华为区块链白皮书(一)
- ADS2019如何导入 SPICE模型
- 插入 PNG 图片至 Excel
热门文章
- 从零开始的LC刷题(56): Power of Two
- 2020博客之星结束了,感谢这些小伙伴们为我投票|博客之星TOP20的几位大佬
- html诗词赏析网页制作,网页课程设计_诗词鉴赏.pdf
- 基于STM32F103的多种波形示波器制作
- STM32F103C8T6系统板
- Function与function的区别
- Oracle 官方文档在线查看Oracle函数
- 【JESD204B】基于JESD204B协议的ADC、DAC数据传输
- 高淇java什么方向,高淇Java笔记(数据类型和运算符、控制语句)
- crmeb 多商户小程序配置