产品的介绍以及注意事项:

 

程序展示:

采用外部中断的方式进行计数,每触发一次中断计一个数

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】红外对射计数器计数原理和代码相关推荐

  1. STM32 外部中断详解(原理+配置代码)

    本文介绍了STM32基于标准外设库的外部中断配置,以及基于参考手册如何更加寄存器配置外部中断 文章目录 1 前言 2 STM32的外部中断 3 中断服务函数的映射关系 4 外部中断的配置 5 寄存器的 ...

  2. 基于STM32红外计数的灯光照明

    小作品简介 这个小作品通过两个红外计数模块来检测物体运动的方向,从而计算出"房间"的人数.同时通过一个光敏电阻检测环境光线的强度.若光线较暗且房间有人时,则打开LED照明.否则,熄 ...

  3. STM32红外寻迹小车

    STM32红外寻迹小车(寄存器版) 最近学习了STM32,想通过制作一辆小车来加深对STM32的理解,在平时学习时经常用正点原子提供的源代码稍加该装就行,但是正点原子没有提供关于红外寻迹模板的相关程序 ...

  4. ESP32实现红外遥控 红外发射与接收实现原理

    文章目录 一,原理 1.1 概括 1.2,时钟 1.3,认识 item 1.4,发射/接收器 1.5 电路原理图 1.5.1,发射电路 1.5.2 ,接收电路 二,红外发射 2.1 整体的思路 2.2 ...

  5. 面向应用学习stm32(6)-TIM基本定时器-计数计时

    前导:本文的目的与,意在于面向应用的学习单片机,故不会涉及太多的原理知识,例如寄存器之类的. 主要目的在于面向应用的学习单片机,学会单片机的基础用法,开发板采取野火的指南者f103. 作者大二小白,写 ...

  6. java 计数器_java并发之计数器CountDownLatch原理

    java并发之计数器CountDownLatch原理 CountDownLatch简介 CountDownLatch顾名思义,count + down + latch = 计数 + 减 + 门闩(这么 ...

  7. 单片机两个正玄波信号的相位差计算_51单片机的定时器/计数器的原理与使用

    CPU时序的有关知识 振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期) 状态周期:2个振荡周期为1个状态周期,用S表示.振荡周期又称S周期或时钟周期. 机器周期:1个机器周期含6 ...

  8. 4线电子围栏安装示意图_红外对射、电子围栏、振动光纤、智能警戒4种常用的周界安防系统...

    前言 最近有朋友咨询周界安防的系统方案,其实现在主流的周界安防系统方案主要有红外对射,电子围栏,振动光纤以及智能警戒摄像头常用的4种方式. 正文 1.红外对射 红外报警系统由前端探测器.中间传输部分和 ...

  9. CD4017 十进制计数器工作原理及应用大全(不断更新中......)

    CD4017 十进制计数器工作原理及应用大全 CD4017是一种十进制计数器/脉冲分配器.具有10个译码输出端,CP.CR.INH输入端.计数输入端CP的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上 ...

  10. 毕业设计 stm32公交刷卡乘客计数系统 - 物联网 单片机

    基于STM32单片机的刷卡计数系统 STM32F103RCT6单片机最小系统+ESP8266无线传感模块+RFID-RC522射频识别模块2+E18-D50NK红外感应模块2+GPS定位模块. 采用S ...

最新文章

  1. 聪明的程序员用Delphi,真正的程序员用C++,偷懒的程序员用PowerShell
  2. android 4.x环境搭建
  3. python partition只能切割一次吗_Python3的字符串方法
  4. Android studio断点调试(全在这里)
  5. Deprecated: Function ereg_replace() is deprecated
  6. [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05)
  7. unity 导入gltf_基于gltf的GPU蒙皮动画(一)
  8. java实验报告2013_java实验报告4
  9. css如何设置div中的内容垂直居中?
  10. 截取网页中的Flash
  11. 使用 SetProcessWorkingSetSize 降低程序内存
  12. 微信小程序——mock.js模拟后台交互
  13. 【小程序源码】经典语录大全多种分类语录
  14. SQL文件的导入与导出
  15. 程序员笔记工具 cherrytree
  16. html中确认密码怎么,HTML确认密码
  17. 银行RPA的5个案例场景展示
  18. 华为区块链白皮书(一)
  19. ADS2019如何导入 SPICE模型
  20. 插入 PNG 图片至 Excel

热门文章

  1. 从零开始的LC刷题(56): Power of Two
  2. 2020博客之星结束了,感谢这些小伙伴们为我投票|博客之星TOP20的几位大佬
  3. html诗词赏析网页制作,网页课程设计_诗词鉴赏.pdf
  4. 基于STM32F103的多种波形示波器制作
  5. STM32F103C8T6系统板
  6. Function与function的区别
  7. Oracle 官方文档在线查看Oracle函数
  8. 【JESD204B】基于JESD204B协议的ADC、DAC数据传输
  9. 高淇java什么方向,高淇Java笔记(数据类型和运算符、控制语句)
  10. crmeb 多商户小程序配置