ARM:按键中断

key_inc.c

#include"key_inc.h"void key1_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR |= (0x1<<5);//将PF9设置为输入模式GPIOF->MODER &= (~(0x3<<18));//设置由PF9管脚产生EXTI9事件EXTI->EXTICR3 &= (~(0XFF<<8));EXTI->EXTICR3|= (0X05<<8);//通过下降沿检测EXTI9事件是否产生EXTI->FTSR1 |= (0x1<<9);//取消EXTI9中断屏蔽EXTI->C1IMR1 |= (0x1<<9);//设置EXTI9中断全局使能GICD->ISENABLER[3] |= (0x1<<3);//设置中断优先级GICD->IPRIORITYR[24] &= (~(0x1f<<27));//设置CPU0处理当前中断GICD->ITARGETSR[24] |= (0x1<<24);//设置组0中断可以被转发到GICC层GICD->CTRL |=0X1;//设置中断优先级掩码GICC->PMR |= (0x1f<<3);//设置组0中断交给指定处理器处理GICC->CTRL |= 0x1;}void key2_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR |= (0x1<<5);//将PF7设置为输入模式GPIOF->MODER &= (~(0x3<<14));//设置由PF9管脚产生EXTI9事件//设置由PF7管脚产生EXTI7事件EXTI->EXTICR2 &= (~(0XFF<<24));EXTI->EXTICR2|= (0X05<<24);//通过下降沿检测EXTI7事件是否产生EXTI->FTSR1 |= (0x1<<7);//取消EXTI7中断屏蔽EXTI->C1IMR1 |= (0x1<<7);//设置EXTI7中断全局使能GICD->ISENABLER[3] |= (0x1<<1);//设置中断优先级GICD->IPRIORITYR[24] &= (~(0x1f<<11));//设置CPU0处理当前中断GICD->ITARGETSR[24] &=( ~(0x3<<8));GICD->ITARGETSR[24] |= (0x1<<8);//设置组0中断可以被转发到GICC层GICD->CTRL |=0X1;}void key3_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR |= (0x1<<5);//将PF7设置为输入模式GPIOF->MODER &= (~(0x3<<16));//设置由PF9管脚产生EXTI9事件//设置由PF8管脚产生EXTI8事件EXTI->EXTICR3 &= (~(0XFF<<0));EXTI->EXTICR3|= (0X05<<0);//通过下降沿检测EXTI8事件是否产生EXTI->FTSR1 |= (0x1<<8);//取消EXTI8中断屏蔽EXTI->C1IMR1 |= (0x1<<8);//设置EXTI8中断全局使能GICD->ISENABLER[3] |= (0x1<<2);//设置中断优先级GICD->IPRIORITYR[24] &= (~(0x1f<<19));//设置CPU0处理当前中断GICD->ITARGETSR[24] &=( ~(0x3<<16));GICD->ITARGETSR[24] |= (0x1<<16);//设置组0中断可以被转发到GICC层GICD->CTRL |=0X1;}

do_irq.c

#include "stm32mp1xx_gic.h"
#include "stm32mp1xx_exti.h"
#include "key_inc.h"
extern void printf(const char *fmt, ...);
unsigned int i = 0;
void do_irq(void) 
{//获取要处理的中断的中断号unsigned int irqno=GICC->IAR&0x3ff;switch (irqno){case 99:printf("key1_intc\n");//清除GICD中断排队标志GICD->ICPENDR[3] |= (0X1<<3);//清除EXTI中断触发标志EXTI->FPR1 |= (0X1<<9);break;case 97:printf("key2_initc\n");//清除GICD中断排队标志GICD->ICPENDR[3] |= (0X1<<1);//清除EXTI中断触发标志EXTI->FPR1 |= (0X1<<7);break;case 98:printf("key3_initc\n");//清除GICD中断排队标志GICD->ICPENDR[3] |= (0X1<<2);//清除EXTI中断触发标志EXTI->FPR1 |= (0X1<<8);break;default:break;}//清除IAR寄存器中的中断号GICC->EOIR |= irqno;
}

main.c

#include"key_inc.h"//封装延时函数void delay(int ms){int i,j;for(i=0;i<ms;i++){for(j=0;j<2000;j++){}}}int main(){//按键中断的初始化key1_it_config();key2_it_config();key3_it_config();while(1){printf("in main pro\n");delay(1000);}return 0;}

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

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

相关文章

msyq类型类转换造成索引失效

今天碰到一个慢sql的问题&#xff0c;sql明明按照最前缀的原则写的&#xff0c;但是索引就是不生效&#xff0c;最终排查发现是因为索引字段发生类型转换造成的。 一、表结构 1、表字段 2、表索引 二、问题sql EXPLAIN SELECT * FROM t_res WHERE open 1 AND res_date &…

蓝桥杯day12刷题日记

P8720 [蓝桥杯 2020 省 B2] 平面切分 思路&#xff1a;首先借用dalao的图解释一下&#xff0c;又多出一条与当前平面任意一条直线都不重合线时&#xff0c;多了的平面是交点数1&#xff0c;所以用双层循环每次往里面加一条直线&#xff0c;计算交点 #include <iostream>…

Ubuntu Desktop - Updates (不升级到新版本)

Ubuntu Desktop - Updates [不升级到新版本] 1. UpdatesReferences 1. Updates System Settings -> Software & Updates -> Updates ubuntu-16.04.3-desktop-amd64.iso 不升级到新版本 ​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

TypeScript 常见的面试题

文章目录 1. 什么是TypeScript2. 类型声明和类型推断的区别&#xff0c;并举例应用3. 什么是接口&#xff08;interface&#xff09;&#xff0c;它的作用&#xff0c;接口的使用场景。接口和类型别名&#xff08;Type Alias&#xff09;的区别4. 什么是泛型&#xff08;generi…

RK3588开发笔记-v1.3.0-SDK文件系统分区添加

目录 目录 前言 一、分区文件 二、分区文件初始化 三、板级配置文件修改

【Linux】nmcli命令详解

目录 ​编辑 一、概述 二、常用参数使用 2.1 nmcli networking 1.显示NM是否接管网络 2.查看网络连接状态 3.开/关网络连接 2.2 general ​编辑 1.显示系统网络状态 2.显示主机名 3.更改主机名 2.3 nmcli connection ​编辑1.显示所有网络连接 2.显示某个网卡的…

JAVA 100道题(15)

15.使用TreeSet对一组整数进行排序。 在Java中&#xff0c;TreeSet是一个基于红黑树实现的NavigableSet接口。由于它是自动排序的&#xff0c;因此当我们向TreeSet中添加元素时&#xff0c;它们会自动按照自然顺序&#xff08;对于整数&#xff0c;就是从小到大的顺序&#xf…

【数据结构】快速排序(用递归)

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解快速排序&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 基本思想二. 快速排序2.1 hoare版本2.2 挖坑法2.3 前后指针法2.4 快速排序优化三数取中法…

redis 基本操作

1、String 类型 赋值语法&#xff1a;SET key value 127.0.0.1:6379> set k1 zhangsan OK 取值语法&#xff1a; GET key 127.0.0.1:6379> get k1 "zhangsan" 设置多个键语法&#xff1a; MSET key value [key value …] 127.0.0.1:6379> mset k2 lisi k3 …

Python学习目录

基础篇 变量赋值篇字符串(string)篇&#xff08;一&#xff09;字符串(string)篇&#xff08;二&#xff09;字符串(string)篇&#xff08;三&#xff09;字符串(string)篇&#xff08;四&#xff09;字符串(string)篇&#xff08;五&#xff09;列表(list)篇&#xff08;一&a…

【Android】【Bluetooth Stack】蓝牙电话协议之接听电话分析(超详细)

1. 精讲蓝牙协议栈&#xff08;Bluetooth Stack&#xff09;&#xff1a;SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅&#xff0c;【蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待&#xff0…

MySQL详解

本笔记源于【狂神说Java】 B站收UP主&#xff1a;遇见狂神说。即可看见教程 或者点击链接MySQL最新教程 目录 1、初始MySQL 1.1、数据库简介 1.2、数据库管理系统 1.3、MySQL简介及安装 1.4、SQLyog 2、操作数据库 2.1、操作数据库&#xff08;了解&#xff09; 2.2、数…

LangChain核心模块 Retrieval——Indexing

Indexing 索引 LangChain Indexing API将数据从任何来源同步到向量存储中并保持同步&#xff0c;可以做到&#xff1a; 避免将重复内容写入矢量库避免重写未更改的内容避免在未更改的内容上重新计算嵌入 最重要的是&#xff0c;Indexing API 甚至可以处理相对于原始源文档经…

WM8978 —— 带扬声器驱动程序的立体声编解码器(2)

接前一篇文章&#xff1a;WM8978 —— 带扬声器驱动程序的立体声编解码器&#xff08;1&#xff09; 六、引脚详细说明 引脚&#xff08;PIN&#xff09;名称&#xff08;NAME&#xff09;类型&#xff08;TYPE&#xff09;描述&#xff08;DESCRIPTION&#xff09;1LIP模拟输入…

无极低码SQL模板引擎使用教程示例,自己手撸一个sql模板引擎进行动态sql生成。

无极低码 &#xff1a;https://wheart.cn 无极低码SQL模板使用教程 一、模板结构与规则 无极低码SQL模板通过简洁的Markdown格式&#xff0c;使SQL语句具有更强的灵活性和适应性&#xff0c;简化了根据业务需求定制SQL的过程。 无极低码SQL模板是一种基于Markdown格式的特殊…

006、Dynamo Python 之Revit元素类别

今天我们来聊聊 Revit 元素这点事&#xff0c;不仅仅是在 Dynamo Python 之中涉及&#xff0c;我们在日常使用 Revit 的时候&#xff0c;也涉及这个问题&#xff0c;只是对我们日常画图没什么影响&#xff0c;所以很多人并没太在意这块。 Revit Elements 分为六个组&#xff1a…

Redis实战篇-4

实战篇Redis 1.3 、实现发送短信验证码功能 页面流程 具体代码如下 贴心小提示&#xff1a; 具体逻辑上文已经分析&#xff0c;我们仅仅只需要按照提示的逻辑写出代码即可。 发送验证码 Overridepublic Result sendCode(String phone, HttpSession session) {// 1.校验手机…

第6章 准时与专注

< 回到目录 第6章 准时与专注 自己预定的会议一定要准时参加。如果无法准时出席呢&#xff1f;当你意识到自己即将迟到时&#xff0c;必须第一时间通知所有与会人员&#xff0c;让大家有充分的准备。这是基本的社交礼仪&#xff0c;更重要的&#xff0c;它还能最大限度地减…

算法打卡day15

今日任务&#xff1a; 1&#xff09;110.平衡二叉树 2&#xff09;257. 二叉树的所有路径 3&#xff09;404.左叶子之和 110.平衡二叉树 题目链接&#xff1a;110. 平衡二叉树 - 力扣&#xff08;LeetCode&#xff09; 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树…

基于大数据的空气质量预测和可视化分析

城市空气质量数据采集系统设计与实现 &#x1f3d9;️ 研究背景 &#x1f32c;️ 城市化与环境挑战&#xff1a;随着城市化进程的加快&#xff0c;环境污染问题&#xff0c;尤其是空气质量问题&#xff0c;已成为公众关注的焦点。数据监测的重要性&#xff1a;城市空气质量数…