当前位置: 首页 > news >正文

12.26

key_it.c

#include"key_it.h"
void led_init()
{// 设置GPIOE/GPIOF时钟使能RCC->MP_AHB4ENSETR |= (0x3 << 4);// 设置PE10/PE8/PF10为输出模式GPIOE->MODER &= (~(0x3 << 20));GPIOE->MODER |= (0x1 << 20);GPIOE->MODER &= (~(0x3 << 16));GPIOE->MODER |= (0x1 << 16);GPIOF->MODER &= (~(0x3 << 20));GPIOF->MODER |= (0x1 << 20);// 设置PE10/PE8/PF10为推挽输出GPIOE->OTYPER &= (~(0x1 << 10));GPIOE->OTYPER &= (~(0X1 << 8));GPIOF->OTYPER &= (~(0x1 << 10));// 设置PE10/PE8/PF10输出速度为低速GPIOE->OSPEEDR &= (~(0x3 << 20));GPIOE->OSPEEDR &= (~(0X3 << 16));GPIOF->OSPEEDR &= (~(0x3 << 20));// 设置PE10/PE8/PF10无上拉下拉GPIOE->PUPDR &= (~(0x3 << 20));GPIOE->PUPDR &= (~(0X3 << 16));GPIOF->PUPDR &= (~(0X3 << 20));
}void key1_it_config()
{//使能GPIOF时钟RCC->MP_AHB4ENSETR |= (0x1<<5);//设置PF9管脚为输入GPIOF->MODER &= (~(0x3<<18));//设置PF9作为EXTI9事件的输入EXTI->EXTICR3 &= (~(0x1f<<8));EXTI->EXTICR3 |= (0x05<<8);//设置下降沿使能检测EXTI9事件EXTI->FTSR1 |= (0x1<<9);//设置EXTI9事件不屏蔽EXTI->C1IMR1 |= (0x1<<9);//GICD使能EXTI9(99号)中断GICD->ISENABLER[3] |= (0x1<<3);//GICD 设置99号中断的优先级GICD->IPRIORITYR[24] &= (~(0x1f<<27));//选择CPU0处理当前中断GICD->ITARGETSR[24] |= (0x1<<24);//全局使能组0中断被转发到GICCGICD->CTRL |= (0X1);//设置中断的优先级掩码GICC->PMR |= (0x1f<<3);//允许组0中断被CPU处理GICC->CTRL |= (0x1);
}
void key2_it_config()
{//设置PF7管脚为输入GPIOF->MODER &= (~(0x3<<14));//设置PF7作为EXTI7事件的输入EXTI->EXTICR2 &= (~(0x1f<<24));EXTI->EXTICR2 |= (0x05<<24);//设置下降沿使能检测EXTI7事件EXTI->FTSR1 |= (0x1<<7);//设置EXTI7事件不屏蔽EXTI->C1IMR1 |= (0x1<<7);//GICD使能EXTI7(97号)中断GICD->ISENABLER[3] |= (0x1<<1);//GICD 设置97号中断的优先级GICD->IPRIORITYR[24] &= (~(0x1f<<11));//选择CPU0处理当前中断GICD->ITARGETSR[24] |= (0x1<<8);//全局使能组0中断被转发到GICCGICD->CTRL |= (0X1);//设置中断的优先级掩码GICC->PMR |= (0x1f<<3);//允许组0中断被CPU处理GICC->CTRL |= (0x1);
}
void key3_it_config()
{//设置PF8管脚为输入GPIOF->MODER &= (~(0x3<<16));//设置PF8作为EXTI8事件的输入EXTI->EXTICR3 &= (~0x1f);EXTI->EXTICR3 |= (0x05);//设置下降沿使能检测EXTI8事件EXTI->FTSR1 |= (0x1<<8);//设置EXTI8事件不屏蔽EXTI->C1IMR1 |= (0x1<<8);//GICD使能EXTI8(98号)中断GICD->ISENABLER[3] |= (0x1<<2);//GICD 设置98号中断的优先级GICD->IPRIORITYR[24] &= (~(0x1f<<19));//选择CPU0处理当前中断GICD->ITARGETSR[24] |= (0x1<<16);//全局使能组0中断被转发到GICCGICD->CTRL |= (0X1);//设置中断的优先级掩码GICC->PMR |= (0x1f<<3);//允许组0中断被CPU处理GICC->CTRL |= (0x1); 
}

do_irq.c

#include "key_it.h"
extern void printf(const char *fmt, ...);
unsigned int i = 0;
void do_irq(void) 
{int irqno = (GICC->IAR & 0x3ff);switch (irqno){case 99: // key1printf("KEY1_INT\n");GPIOE->ODR |= (0x1<<10);// 清除GICD的中断排队标志GICD->ICPENDR[3] |= (0x1<<3);// 清除exti的事件触发标志EXTI->FPR1 |= (0x1<<9);delay(2000);GPIOE->ODR &= (~(0x1<<10));break;case 97: // KEY2printf("KEY2_INT\n");GPIOF->ODR |= (0x1<<10);// 清除GICD的中断排队标志GICD->ICPENDR[3] |= (0x1<<1);// 清除exti的事件触发标志EXTI->FPR1 |= (0x1<<7);delay(2000);GPIOF->ODR &= (~(0x1<<10));break;case 98: // key3printf("KEY3_INT\n");GPIOE->ODR |= (0x1<<8);// 清除GICD的中断排队标志GICD->ICPENDR[3] |= (0x1<<2);// 清除exti的事件触发标志EXTI->FPR1 |= (0x1<<8);delay(2000);GPIOE->ODR &= (~(0x1<<8));break;}// 清除中断号GICC->EOIR = irqno;}

main.c

#include "key_it.h"void delay(int ms){int i,j;for(i=0;i<ms;i++){for(j=0;j<2000;j++);}}int main(){led_init();key1_it_config();key2_it_config();key3_it_config();while (1){printf("do main...\n");delay(1000);}return 0;}

相关文章:

12.26

key_it.c #include"key_it.h" void led_init() {// 设置GPIOE/GPIOF时钟使能RCC->MP_AHB4ENSETR | (0x3 << 4);// 设置PE10/PE8/PF10为输出模式GPIOE->MODER & (~(0x3 << 20));GPIOE->MODER | (0x1 << 20);GPIOE->MODER & (~…...

2022年全国职业院校技能大赛高职组云计算正式赛卷第三场-公有云

2022 年全国职业院校技能大赛高职组云计算赛项试卷 【赛程名称】云计算赛项第三场-公有云 目录 2022 年全国职业院校技能大赛高职组云计算赛项试卷 【赛程名称】云计算赛项第三场-公有云 【任务 1】公有云服务搭建[10 分] 【任务 2】公有云服务运维[10 分] 【任务 3】公有云运维…...

Python | 机器学习之数据清洗

机器学习前的数据清洗&#xff08;异常值检验&#xff0c;标准化处理&#xff0c;哑变量处理&#xff09; Python | 机器学习之数据清洗 机器学习 - 基础概念 - scikit-learn - 数据预处理​​​​​​​ 数据的标准化&#xff08;离差标准化、log函数转换、atan函数转换、z…...

力扣:509. 斐波那契数(动态规划,附带递归版本) 详细讲解动态规划的思路

题目&#xff1a; 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;其中…...

Python3,压箱底的代码片段,提升工作效率稳稳的。

压箱底代码存活 1、引言2、代码实例2.1 操作存储服务2.1.1 Redis操作2.1.2 MongoDB操作2.1.3 MySQL操作 2.2 异步操作2.3 多线程 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c;这年底了&#xff0c;得不得分享一点压箱底的东西啊 小鱼&#xff1a;… 压箱底的东西&…...

Flowable-升级为7.0.0.M2-第三节

目录 启动项目添加虚拟机参数启动成功 启动项目 添加虚拟机参数 java.base/java.langALL-UNNAMED --add-opens java.base/java.mathALL-UNNAMED --add-opens java.base/java.util.concurrentALL-UNNAMED --add-opens java.base/java.netALL-UNNAMED --add-opens java.base/ja…...

JavaWeb——前端之AjaxVue

6. 前后端交互 6.1 Ajax&#xff08;原生的&#xff09; 概念&#xff1a; Asynchronous JavaScript And XML&#xff08;异步的JavaScript和XML&#xff09; 作用&#xff1a; 数据交互&#xff1a;通过Ajax可以给服务器发送请求&#xff0c;并获取服务器响应的数据异步交…...

在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序

如果您有 Android 设备&#xff0c;您可能会将个人和专业的重要文件保存在设备的 SD 卡上。这些文件包括照片、视频、文档和各种其他类型的文件。您绝对不想丢失这些文件&#xff0c;但当您的 SD 卡损坏时&#xff0c;数据丢失是不可避免的。 幸运的是&#xff0c;您不需要这样…...

uni-app/vue封装etc车牌照输入,获取键盘按键键值

先看下效果如下&#xff1a; 动态图如下 uniapp的keyup获取不到keyCode和compositionstart&#xff0c;compositionend&#xff0c;所以需要监听input节点的keyup事件&#xff0c; 思路以及代码如下&#xff1a; 1.将每一个字符用文本框输入&#xff0c;代码如下 <view …...

iostat获取IO延迟单位从ms调整us的方案

iostat命令统计的磁盘I/O延迟通常是以毫秒&#xff08;ms&#xff09;为单位&#xff0c;例如在输出中的await字段表示的是平均服务时间&#xff0c;包括等待时间和处理时间&#xff0c;这个值就是以毫秒为单位。 然而&#xff0c;要获取更精确到微秒级别&#xff08;us&#x…...

K8s 源码剖析及debug实战之 Kube-Scheduler(四):预选算法详解

文章目录 0. 引言1. 回顾2. podFitsOnNode 为什么执行两次预选3. 预选算法有哪些4. 参考 0. 引言 欢迎关注本专栏&#xff0c;本专栏主要从 K8s 源码出发&#xff0c;深入理解 K8s 一些组件底层的代码逻辑&#xff0c;同时借助 debug Minikube 来进一步了解 K8s 底层的代码运行…...

ES6之解构赋值详解

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…...

UntiyShader(五)属性、内置文件和变量

目录 一、如何使用属性 例子 ShaderLab中的属性的类型和Cg中的变量的类型之间的匹配关系 二、Unity提供的内置文件和变量 内置的包含文件 内置的变量 一、如何使用属性 在一开始我们提到过&#xff0c;材质和UnityShader之间有着密切的练习&#xff0c;我们可以通过材质面…...

Pytorch简介

1.1 Pytorch的历史 PyTorch是一个由Facebook的人工智能研究团队开发的开源深度学习框架。在2016年发布后&#xff0c;PyTorch很快就因其易用性、灵活性和强大的功能而在科研社区中广受欢迎。下面我们将详细介绍PyTorch的发展历程。 在2016年&#xff0c;Facebook的AI研究团队…...

亚马逊云科技Amazon Q,一款基于生成式人工智能的新型助手

近日&#xff0c;亚马逊云科技宣布推出Amazon Q&#xff0c;这是一款基于生成式人工智能&#xff08;AI&#xff09;的新型助手&#xff0c;专为辅助工作而设计&#xff0c;可以根据您的业务量身定制。通过连接到公司的信息存储库、代码、数据和企业系统&#xff0c;可以使用Am…...

骑砍战团MOD开发(29)-module_scenes.py游戏场景

骑砍1战团mod开发-场景制作方法_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Cw411N7G4/ 一.骑砍游戏场景 骑砍战团中进入城堡,乡村,战斗地图都被定义为场景,由module_scenes.py进行管理。 scene(游戏场景) 天空盒(Skyboxes.py) 地形(terrain code) 场景物(scene_…...

ROS学习记录:ROS系统中的激光雷达消息包的数据格式

一、在工作空间中输入source ./devel/setup.bash 二、输入roslaunch wpr_simulation wpb_simple.launch打开机器人仿真环境 三、机器人仿真环境打开成功 四、给机器人围上一圈障碍物 五、再打开一个工作空间终端 六、输入roslaunch wpr_simulation wpb_rviz.launch打开RViz 七、…...

Vue.js和Node.js的关系--类比Java系列

首先我们看一张图 这里我们类比了Java的jvm和JavaScript的node.js。 可以看到&#xff0c;node.js是基础&#xff0c;提供了基础的编译执行的能力。vue,js是实际上定义了一种他自己的代码格式&#xff0c;以加速开发。...

我的笔记本电脑死机问题折腾记录

两年前&#xff0c;买了一台笔记本电脑。直到今年4月份&#xff0c;不到两年的时间&#xff0c;便出现了花屏的情况&#xff0c;然后就到官方售后去维修&#xff0c;换屏。然后在6月份&#xff0c;屏幕问题再次出现&#xff0c;又去售后维修。 经过两次维修&#xff0c;笔记本…...

uniApp中uView组件库的丰富布局方法

目录 基本使用 #分栏间隔 #混合布局 #分栏偏移 #对齐方式 API #Row Props #Col Props #Row Events #Col Events UniApp的uView组件库是一个丰富的UI组件库&#xff0c;提供了各种常用的UI组件和布局方法&#xff0c;帮助开发者快速构建美观、灵活的界面。下面给你写一…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...