从0开始的STM32HAL库学习4

对射式红外传感器计数复现

配置工程

我们直接复制oled的工程,但是要重命名。

将PB14设置为中断引脚

自定义命名为sensorcount

 设置为上升沿触发

打开中断

配置NVCI

都为默认就可以了

修改代码

修改stm32f1xx_it.c 文件

找到中断函数并修改

void EXTI15_10_IRQHandler(void)
{/* USER CODE BEGIN EXTI15_10_IRQn 0 */if(__HAL_GPIO_EXTI_CLEAR_FLAG(sensorcount_Pin)){/* USER CODE END EXTI15_10_IRQn 0 */HAL_GPIO_EXTI_IRQHandler(sensorcount_Pin);/* USER CODE BEGIN EXTI15_10_IRQn 1 */count+=1;}/* USER CODE END EXTI15_10_IRQn 1 */}

定义一个count用于计数

添加计数函数

/* USER CODE BEGIN 1 */
uint16_t get_sensorcounter(void)
{return count;
}
/* USER CODE END 1 */

修改main函数文件

找到void main并修改

int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();/* USER CODE BEGIN 2 */OLED_Init();OLED_Clear();/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){OLED_ShowNum(1, 1, get_sensorcounter(), 5);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}/*** @brief System Clock Configuration* @retval None*/

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/374623.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch实现水果2分类(蓝莓,苹果)

1.数据集的路径,结构 dataset.py 目的: 输入:没有输入,路径是写死了的。 输出:返回的是一个对象,里面有self.data。self.data是一个列表,里面是(图片路径.jpg,标签&…

Docker安装遇到问题:curl: (7) Failed to connect to download.docker.com port 443: 拒绝连接

问题描述 首先,完全按照Docker官方文档进行安装: Install Docker Engine on Ubuntu | Docker Docs 在第1步:Set up Dockers apt repository,执行如下指令: sudo curl -fsSL https://download.docker.com/linux/ubu…

MybatisPlus 使用教程

MyBatisPlus使用教程 文章目录 MyBatisPlus使用教程1、使用方式1.1 引入依赖1.2 构建mapper接口 2、常用注解2.1 TableName2.2 TableId2.3 TableField MyBatisPlus顾名思义便是对MyBatis的加强版,但两者本身并不冲突(只做增强不做改变): 引入它并不会对原…

[数据集][目标检测]护目镜检测数据集VOC+YOLO格式888张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):888 标注数量(xml文件个数):888 标注数量(txt文件个数):888 标注类别…

C语言基本概念

C语言是什么? 1.人与人之间 自然语言 2.人与计算机之间 计算机语言 例如C、Java、Go、Python 在计算机语言中 1.解释型语言:Python 2.编译型语言:C/C 编译和链接 C语言源代码都是文本文件.c,必须通过编译器的编译和链接器的…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十八章 Linux编写第一个自己的命令

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

基于Python的哔哩哔哩数据分析系统设计实现过程,技术使用flask、MySQL、echarts,前端使用Layui

背景和意义 随着互联网和数字媒体行业的快速发展,视频网站作为重要的内容传播平台之一,用户量和内容丰富度呈现爆发式增长。本研究旨在设计并实现一种基于Python的哔哩哔哩数据分析系统,采用Flask框架、MySQL数据库以及echarts数据可视化技术…

昇思MindSpore学习入门-参数初始化

使用内置参数初始化 MindSpore提供了多种网络参数初始化的方式,并在部分算子中封装了参数初始化的功能。本节以Conv2d为例,分别介绍如何使用Initializer子类,字符串进行参数初始化。 Initializer初始化 Initializer是MindSpore内置的参数初…

硬件开发工具Arduino IDE

招聘信息共享社群 关联上篇文章乐鑫ESPRESSIF芯片开发简介 Arduino IDE(集成开发环境)是为Arduino硬件开发而设计的一款软件,它提供了一个易于使用的图形界面,允许用户编写、编辑、编译和上传代码到Arduino开发板。Arduino IDE的…

【前端】包管理器:npm、Yarn 和 pnpm 的全面比较

前端开发中的包管理器:npm、Yarn 和 pnpm 的全面比较 在现代前端开发中,包管理器是开发者必不可少的工具。它们不仅能帮我们管理项目的依赖,还能极大地提高开发效率。本文将详细介绍三种主流的前端包管理器:npm、Yarn 和 pnpm&am…

六、数据可视化—Echars(爬虫及数据可视化)

六、数据可视化—Echars(爬虫及数据可视化) Echarts应用 Echarts Echarts官网,很多图表等都是我们可以 https://echarts.apache.org/zh/index.html 是百度自己做的图表,后来用的人越来越多,捐给了orange组织&#xf…

相机光学(三十)——N5-N7-N8中性灰

GTI可提供N5/N7/N8中性灰涂料,用于不同的看色环境,N5/N7/N8代表深中浅不同的灰色程度,在成像、工业、印刷行业中,分别对周围观察环境有一定的要求,也出台了相应的标准文件,客户可以根据实际使用环境进行选择…

FiddlerScript Rules修改-更改发包中的cookie

直接在fiddler script editor中增加如下处理代码即可 推荐文档oSession -- 参数说明 测试笔记 看云

树莓派4B_OpenCv学习笔记19:OpenCV舵机云台物体追踪

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: Python 版本3.7.3: ​​ 今日学习&#xff1…

RAG 工业落地方案框架(Qanything、RAGFlow、FastGPT、智谱RAG)细节比对!CVPR自动驾驶最in挑战赛赛道,全球冠军被算力选手夺走了

RAG 工业落地方案框架(Qanything、RAGFlow、FastGPT、智谱RAG)细节比对!CVPR自动驾驶最in挑战赛赛道,全球冠军被算力选手夺走了。 本文详细比较了四种 RAG 工业落地方案 ——Qanything、RAGFlow、FastGPT 和智谱 RAG,重…

不仅是输出信息,console.log 也能玩出花

console.log 是 JavaScript 中一个常用的函数,用于向控制台输出信息。 console.log 虽然主要用于调试目的,但也包含了一些有趣的用法, console.log 不仅能输出文本,还能以更丰富的方式展示信息。 比如我们打开 B 站,然…

79. UE5 RPG 创建技能冷却和消耗

在这一篇里面,我们接着优化技能,现在角色添加的主动技能能够同步到ui上面。我们在这一篇文章里面,完善技能的消耗(释放技能减少蓝量)和冷却机制。 我们可以看到,在技能类默认值这里,可以设置它的…

【YashanDB知识库】YashanDB 开机自启

【问题分类】 YashanDB 开机自启 【关键字】 开机自启,依赖包 【问题描述】 数据库所在服务器重启后只拉起monit、yasom、yasom进程,缺少yasdb进程: 【问题原因分析】 数据库安装的时候未启动守护进程 【解决 / 规避方法】 进入数据库之前…

问题清除指南|Dell OptiPlex 7070 升级 win11 开启 TPM 2.0 教程

前言:最近想把实验室台式机的系统从 Windows 10 升级到 Windows 11,遇到一点小问题,在此记录一下解决办法。 ⚠️ 注:本教程仅在 Dell OptiPlex 7070 台式机系统中测试有效,并不保证其余型号机器适用此教程。 参考链接…

计算机网络体系结构解析

OSI参考模型 与 TCP/IP模型 如图所示 TCP/IP模型有几层 应用层:只需要专注于为用户提供应用功能 HTTP、SMTP、Telnet等,工作在操作系统中的用户态,传输层及以下工作在内核态传输层:为应用层提供网络支持(TCP、UDP传…