什么网站都能进的浏览器软件手机站

张小明 2026/1/10 12:34:18
什么网站都能进的浏览器,软件手机站,设计商城网站建设,wordpress获取当前页面链接1.外部中断EXTIEXTI#xff1a;External interrupt/event controller外部中断/事件控制器1.外部中断基础知识1.STM32外部中断框架中断的概念#xff1a;在主程序运行过程中#xff0c;出现了特定的中断触发条件#xff0c;使得CPU暂停当前正在运行的程序#xff0c;转而去…1.外部中断EXTIEXTIExternal interrupt/event controller外部中断/事件控制器1.外部中断基础知识1.STM32外部中断框架中断的概念在主程序运行过程中出现了特定的中断触发条件使得CPU暂停当前正在运行的程序转而去处理中断程序处理完成后又返回原来被暂停的位置继续运行。有20条外部中断线有十六条是GPIO的中断线0~15同一个引脚号对应同一个line第十九条line只在有ETH互联设备上才存在GPIO的中断线要启用必须先要配置AFIO的寄存器EXTICRx2.STM32外部中断机制框架边沿检测上升沿下降沿或者双边沿软件配置中断或者事件寄存器屏蔽中断寄存器或事件寄存器请求挂起寄存器中断则发送给NVIC中断控制器事件则产生一个脉冲响应2.复用功能1.什么是复用功能处理器的引脚本身默认就是一个普通的GPIO但是它还可以被复用成其他功能我们称之为一个引脚的复用功能3.重映射1.什么是重映射重映射属于复用功能的另外一个功能可以把具有特殊功能的引脚分配到其他引脚上去如果某个功能被重映射了那么这个功能将不再遵循其默认的默认分配。2.中断嵌套控制器NVICNVICNested Vectored Interrupt Controller 嵌套向量中断控制器1.中断向量表Cortex-M3内核支持256个中断其中包含了16个内核中断异常和240个外部中断并且具有256级的可编程中断设置。但是STM32并没有使用CM3内核的全部东西而是只用了它的一部分。STM32有84个中断包括16个内核中断异常和68个可屏蔽中断 具有16级可编程的中断优先级。而STM32F103系列上面16个内核中断异常不变 而可屏蔽中断只有60个在107系列才有68个优先级号越小优先级越高。2.中断优先级分组这60个中断怎么管理呢这就涉及到STM32的中断分组。STM32可以将中断分成5个 组分别为组0-4同时对每个中断设置一个抢占优先级和响应优先级。分组配置是由 SCB-AIRCR寄存器的bit10-8来定义的。SCB-AIRCR是在哪里的呢由于这是CM3内核定义的具体的分配关系如下所示CM3中定义了8个Bit用于设置中断源的优先级而STM32只选用其中的4个Bit。抢占优先级的级别高于响应优先级而数值越小所代表的的优先级越高介绍一下抢占优先级、响应优先级的区别高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的抢占优先级相同的中断高响应优先级不可以打断低响应优先级的中断抢占优先级相同的中断当两个中断同时发生的情况下哪个响应优先级高哪个先执行如果两个中断的抢占优先级和响应优先级都是一样的话则看哪个中断先发生就先执行中断号除此之外有两点需要注意打断的情况只会与抢占优先级有关 和响应优先级无关中断嵌套一般情况下系统代码执行过程中只设置一次中断优先级分组比如分组2设置好分组之后一般不会再改变分组。随意改变分组会导致中断管理混乱程序出现意想不到的执行结果。3.中断优先级控制函数结构体中断优先级控制函数NVIC_SetPriorityGrouping()。中断优先级控制结构体参数 NVIC_InitTypeDefNVIC_IRQChannel定义初始化的是哪一个中断这个可以在stm32f10x.h文件 中查到每个中断对应的名字如USART1_IRQnNVIC_IRQChannelPreemptionPriority定义此中断的抢占优先级别 NVIC_IRQChannelSubPriority定义此中断的响应优先级别NVIC_IRQChannelCmd该中断是否使能。NVIC_Init()函数初始化NVIC寄存器IRQn Interrupt Request Number 中断请求编号或中断号4.中断优先级设置步骤1、系统运行后先设置中断优先级分组。调用函数。2、针对每个中断设置对应的抢占优先级和响应优先级。3、如果需要挂起/解挂查看中断当前激活状态分别调用相关函数即可。5.项目外部中断按键控制LED灯按键控制LED的开发流程第一步使能功能复用时钟第二布配置复用寄存器第三步配置中断屏蔽寄存器固件库按键控制LED灯外部中断EXTI结构体typedef struct {uint32_t EXTI_Line;EXTIMode_TypeDef EXTI_Mode;EXTITrigger_TypeDef EXTI_Trigger;FunctionalState EXTI_LineCmd;}EXTI_InitTypeDef;外部中断EXTI相关库函数void EXTI_DeInit(void);voidEXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct);void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line);void EXTI_ClearFlag(uint32_t EXTI_Line);ITStatusEXTI_GetITStatus(uint32_t EXTI_Line);voidEXTI_ClearITPendingBit(uint32_t EXTI_Line);ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);检查指定的 EXTI 中断线路是否发生了中断请求即查询该线路的中断标志位Interrupt Flag是否被置位。工作原理当配置好的外部中断触发条件如上升沿发生时硬件会自动将对应的中断挂起位 置1。这个函数就是去读取这个状态位的值。// 方式1最常用的判断方式推荐if (EXTI_GetITStatus(EXTI_Line0) ! RESET){// 中断发生了执行处理代码EXTI_ClearITPendingBit(EXTI_Line0);}软件流程设计初始化GPIO、AFIOEXTI外设时钟初始化GPIO按键初始化LED引脚连接GPIO引脚到EXTI初始化EXTI外部中断条件NVIC初始化NVIC嵌套中断控制器编写外部中断函数判断中断发生控制LED灯#include stm32f10x.h #include Exti.h void Exti_Init(void) { GPIO_InitTypeDef Gpio_Initstructure; EXTI_InitTypeDef Exti_Initstructure; NVIC_InitTypeDef NVIC_Initstructure; // RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE); Gpio_Initstructure.GPIO_Pin GPIO_Pin_0; Gpio_Initstructure.GPIO_Mode GPIO_Mode_IPU; GPIO_Init(GPIOA,Gpio_Initstructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0); // Exti_Initstructure.EXTI_Line EXTI_Line0; Exti_Initstructure.EXTI_Mode EXTI_Mode_Interrupt; Exti_Initstructure.EXTI_Trigger EXTI_Trigger_Falling; Exti_Initstructure.EXTI_LineCmd ENABLE; EXTI_Init(Exti_Initstructure); // NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_Initstructure.NVIC_IRQChannel EXTI0_IRQn; NVIC_Initstructure.NVIC_IRQChannelPreemptionPriority 0; NVIC_Initstructure.NVIC_IRQChannelSubPriority 0; NVIC_Initstructure.NVIC_IRQChannelCmd ENABLE; NVIC_Init(NVIC_Initstructure); }过程详解1.结构体声明和时钟使能GPIO_InitTypeDef Gpio_Initstructure;EXTI_InitTypeDef Exti_Initstructure;NVIC_InitTypeDef NVIC_Initstructure;// 开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);注如果不开启AFIO时钟GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);将不会把PA0引脚连接到EXTI_Line0。实际上是在操作 AFIO 模块的寄存器。引脚与EXTI的映射关系保持默认或随机在STM32中EXTI线默认没有连接到任何GPIO引脚或者保持上一次的状态。2.配置GPIO引脚3.连接GPIO引脚到EXTI线路PIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);建立映射关系将物理引脚PA0连接到EXTI_Line0中断线注多个引脚可共享同一条EXTI线如PA0和PB0都连到EXTI_Line04.配置EXTI模块中断条件设置Exti_Initstructure.EXTI_Line EXTI_Line0; // 选择EXTI线路0Exti_Initstructure.EXTI_Mode EXTI_Mode_Interrupt; // 中断模式Exti_Initstructure.EXTI_Trigger EXTI_Trigger_Falling; // 下降沿触发Exti_Initstructure.EXTI_LineCmd ENABLE; // 使能该线路EXTI_Init(Exti_Initstructure); // 应用配置EXTI_Trigger_Rising上升沿触发低→高EXTI_Trigger_Falling下降沿触发高→低EXTI_Trigger_Rising_Falling双边沿触发变化就触发5.配置NVIC// 1. 设置优先级分组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_PriorityGroup_22位抢占优先级2位子优先级抢占优先级决定是否能打断其他中断高优先级可抢占低优先级子优先级相同抢占优先级时的响应顺序// 2. 配置具体中断通道NVIC_Initstructure.NVIC_IRQChannel EXTI0_IRQn; // 中断号NVIC_Initstructure.NVIC_IRQChannelPreemptionPriority 0; // 抢占优先级NVIC_Initstructure.NVIC_IRQChannelSubPriority 0; // 子优先级NVIC_Initstructure.NVIC_IRQChannelCmd ENABLE; // 使能中断NVIC_Init(NVIC_Initstructure);硬件流程1. 按键按下 → PA0电平高 → 低2. EXTI检测到下降沿 →设置中断标志位3. NVIC检查优先级 → 中断当前程序如果允许4. CPU跳转到中断服务函数[物理世界]手指按下按键↓[芯片引脚]PA0与GND接通 → 电压3.3V→0V↓[芯片内部GPIO]检测到PA00之前是1↓[芯片内部EXTI]发现1→0下降沿 →置位中断标志↓[芯片内部连线]通过金属线发送IRQ6信号↓[芯片内部NVIC]接收信号 →检查优先级→ 通知CPU↓[CPU核心]暂停主程序 → 跳转到你的中断函数↓[执行代码]你的灯控逻辑亮1秒 → 灭1秒↓[检查]EXTI_GetITStatus() 确认是PA0中断↓[清理]EXTI_ClearITPendingBit() 清除中断标志↓[返回]CPU回到主程序继续执行补充weak弱定义如果用户没有自己定义的中断函数则系统默认执行系统自定义的中断函数如果用户有定义中断函数则优先执行用户的中断函数。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

怎样做一个网站赚钱吗关键词seo优化公司

HiChatBox PWM调节电机转速技术在智能小车、教学机器人或自动窗帘等设备中,我们常常需要让电机“慢一点”或者“快起来”,甚至实现正反转控制。这种看似简单的调速需求背后,其实依赖着一项成熟而高效的技术——脉宽调制(PWM&#…

张小明 2026/1/10 12:13:36 网站建设

网站备案查询 站长三亚器车出行有限公司

第一章:空间转录组热力图绘制概述空间转录组技术结合了传统转录组测序与空间位置信息,使得基因表达模式能够在组织切片的二维坐标中可视化呈现。热力图作为展示高维数据分布的有效手段,在空间转录组分析中被广泛用于揭示基因表达的空间异质性…

张小明 2026/1/10 6:04:04 网站建设

三明网站建设tudouly免费app制作软件下载

在微信深度渗透社交与商业场景的今天,个人微信号已成为企业客户运营、用户触达的核心载体。开发个人微信营销系统、自定义机器人、智能客服及群数据分析工具等需求日益增长,但如何高效实现与微信的交互、调用聊天接口并保障安全稳定,成为开发…

张小明 2026/1/10 12:13:38 网站建设

网站建设实际总结十大食品公司

PyTorch-CUDA-v2.7 镜像中如何安装额外的 Python 包 在深度学习项目开发中,一个稳定、可复现的运行环境往往比模型本身更早成为瓶颈。尤其是当团队成员各自搭建环境时,CUDA 版本不匹配、PyTorch 编译选项差异、甚至 Python 小版本不同都可能导致“在我机…

张小明 2026/1/10 10:33:37 网站建设

网站问题有哪些内容重庆新闻发布会

海尔智能设备无缝接入HomeAssistant:3步搞定全屋智能联动 【免费下载链接】haier 项目地址: https://gitcode.com/gh_mirrors/ha/haier 你是否曾经为不同品牌智能设备无法协同工作而烦恼?每次控制海尔空调、热水器都要打开单独的APP,…

张小明 2026/1/10 12:13:37 网站建设

浅灰色做网站背景杨浦网站建设哪家好

当探索式思维遇见面试战场 在敏捷开发主导的数字化时代,探索式测试(Exploratory Testing)已成为高级测试工程师的核心竞争力。据ISTQB 2025年度报告显示,83%的头部科技企业在测试岗面试中增设批判性思维评估环节。本文以「情境再…

张小明 2026/1/10 8:35:28 网站建设