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

0702_ARM6

练习:
中断实验
main.c

#include "key.h"
int main()
{//初始化rcc gpiohal_key_rcc_gpio_init();//初始化extihal_key_exti_init();//初始化gichal_key_gic_init();while(1){}return 0;
}

key.c

#include "key.h"//GPIOF初始化
void hal_key_rcc_gpio_init(){//1.rcc初始化使能GPIOF控制器RCC->MP_AHB4ENSETR |= (0x1<<5);//2.GPIO模式设置//将PF9引脚设置为输入模式GPIOF->MODER &= ~(0x3<<18);//将PF7引脚设置为输入模式GPIOF->MODER &= ~(0x3<<14);//将PF8引脚设置为输入模式GPIOF->MODER &= ~(0x3<<16);
}//EXTI初始化
void hal_key_exti_init(){//PF9//1.设置PF9外部中断选择寄存器进行连接EXTI->EXTICR3 &= ~(0xff<<8);EXTI->EXTICR3 |= (0x05<<8);//2.设置PF9对应EXTI编号下降沿触发EXTI->FTSR1 |= (0x1<<9);//3.设置PF9对应EXTI层中断不屏蔽EXTI->C1EMR1 |= (0x1<<9);//PF7//1.设置PF7外部中断选择寄存器进行连接EXTI->EXTICR2 &= ~(0xff<<24);EXTI->EXTICR2 |= (0x05<<24);//2.设置PF7对应EXTI编号下降沿触发EXTI->FTSR1 |= (0x1<<7);//3.设置PF7对应EXTI层中断不屏蔽EXTI->C1EMR1 |= (0x1<<7);//PF8//1.设置PF8外部中断选择寄存器进行连接EXTI->EXTICR3 &= ~(0xff);EXTI->EXTICR3 |= (0x05);//2.设置PF8对应EXTI编号下降沿触发EXTI->FTSR1 |= (0x1<<8);//3.设置PF8对应EXTI层中断不屏蔽EXTI->C1EMR1 |= (0x1<<8);
}//GIC初始化
void hal_key_gic_init(){//1.使能GICD组0GICD->CTRL |= 0x1;//PF9//GICD//1.设置PF9对应中断号99使能GICD->ISENABLER[3] |= (0x1<<3);//2.设置GICD层中断优先级GICD->IPRIORITYR[24] &= ~(0x1f<<27);//GICD->IPRIORITYR[24] |= (0x1<<27);//3.设置GICD层中断分配GICD->ITARGETSR[24] &= ~(0x3<<24);GICD->ITARGETSR[24] |= (0x1<<24);//PF7//GICD//1.设置PF7对应中断号97使能GICD->ISENABLER[3] |= (0x1<<1);//2.设置GICD层中断优先级GICD->IPRIORITYR[24] &= ~(0x1f<<11);//GICD->IPRIORITYR[24] |= (0x1<<11);//3.设置GICD层中断分配GICD->ITARGETSR[24] &= ~(0x3<<8);GICD->ITARGETSR[24] |= (0x1<<8);//PF8//GICD//1.设置PF8对应中断号98使能GICD->ISENABLER[3] |= (0x1<<2);//2.设置GICD层中断优先级GICD->IPRIORITYR[24] &= ~(0x1f<<19);//GICD->IPRIORITYR[24] |= (0x1<<19);//3.设置GICD层中断分配GICD->ITARGETSR[24] &= ~(0x3<<16);GICD->ITARGETSR[24] |= (0x1<<16);//2.设置GICC层组0使能GICC->CTRL |= 0x1;//3.设置GICC层中断优先级GICC->PMR |= (0xf<<3);
}

key.h

#ifndef __KEY_H__
#define  __KEY_H__
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_exti.h"
#include "stm32mp1xx_gic.h"
extern  void do_irq(void);
// GPIOF初始化
void hal_key_rcc_gpio_init();
// EXTI初始化
void hal_key_exti_init();
// GIC初始化
void hal_key_gic_init();#endif

相关文章:

  • 中国民间网络外交组织(CCND)
  • 【C++进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫
  • (PADS学习)第二章:原理图绘制 第一部分
  • [开源软件] 支持链接汇总
  • VS2019中解决方案里的所有项目都是 <不同选项> 的解决方案
  • 重温react-06(初识函数组件和快速生成格式的插件使用方式)
  • AcWing 1256:扩展二叉树
  • C++ ariac2 Windows库编译
  • 【Node-RED 4.0.2】4.0版本新增特性(官方版)
  • 智能洗车管理系统设计
  • 安装llama_factory
  • HttpUtils工具类
  • base64字符串空格问题
  • 【智能算法】目标检测算法
  • doris集群物理部署保姆级教程
  • JS 中的深拷贝与浅拷贝
  • 【mysql】环境安装、服务启动、密码设置
  • 11111111
  • Docker下部署自己的LNMP工作环境
  • go append函数以及写入
  • iOS 颜色设置看我就够了
  • PHP 小技巧
  • Protobuf3语言指南
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Spring核心 Bean的高级装配
  • Vue2.x学习三:事件处理生命周期钩子
  • 高性能JavaScript阅读简记(三)
  • 给初学者:JavaScript 中数组操作注意点
  • 好的网址,关于.net 4.0 ,vs 2010
  • 聚类分析——Kmeans
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 走向全栈之MongoDB的使用
  • MPAndroidChart 教程:Y轴 YAxis
  • 交换综合实验一
  • 如何在招聘中考核.NET架构师
  • 正则表达式-基础知识Review
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # SpringBoot 如何让指定的Bean先加载
  • #Linux(make工具和makefile文件以及makefile语法)
  • (4)Elastix图像配准:3D图像
  • (7)摄像机和云台
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (定时器/计数器)中断系统(详解与使用)
  • (翻译)terry crowley: 写给程序员
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (简单) HDU 2612 Find a way,BFS。
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (学习日记)2024.01.19
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)母版页和相对路径
  • ***通过什么方式***网吧
  • .gitignore文件使用