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

免费企业网站源代码四川企业seo推广

免费企业网站源代码,四川企业seo推广,网网站建设与设计,网站的速度诊断怎么做一、中断的原理: 中断是一种机制,允许单片机在执行主程序时,被外部事件或内部事件打断,执行特定的处理程序(中断服务程序,ISR)。中断处理完成后,单片机返回到原来的任务继续执行。 二…

一、中断的原理:
中断是一种机制,允许单片机在执行主程序时,被外部事件或内部事件打断,执行特定的处理程序(中断服务程序,ISR)。中断处理完成后,单片机返回到原来的任务继续执行。
二、中断也分优先级:
STM32F103C8T6支持中断优先级配置,允许高优先级的中断打断低优先级的中断。
优先级分为两个部分:
抢占优先级(Preemption Priority):高优先级的中断可以打断低优先级的中断。
子优先级(Sub Priority):当两个中断具有相同的抢占优先级时,子优先级较高的中断先执行。
三、中断处理过程
中断请求:外部事件或内部事件触发中断。
中断响应:单片机保存当前上下文,跳转到中断服务程序(ISR)。
中断处理:执行ISR中的代码。
中断返回:执行完ISR后,恢复上下文,返回到原来的任务。
四、案例:
按键中断是外部中断的常见应用之一。通过配置GPIO引脚为外部中断,可以实现按键按下时的即时响应,避免轮询检测。

当然电机控制中还有霍尔输入中断检测

STM32外部中断输入配置参考:

#include "stm32f10x.h"void EXTI_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;// 使能GPIOA和AFIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);// 配置PA0为浮空输入模式GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, &GPIO_InitStructure);// 配置EXTI线GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);// 配置EXTI中断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中断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);
}// EXTI0中断处理函数
void EXTI0_IRQHandler(void) {if (EXTI_GetITStatus(EXTI_Line0) != RESET) {// 处理按键中断// ...// 清除中断标志EXTI_ClearITPendingBit(EXTI_Line0);}
}int main(void) {EXTI_Init();  // 初始化外部中断while (1) {// 主循环}
}

五、中断使用注意事项:
(1)在不需要中断功能时,可以关闭相关GPIO引脚的时钟,进入低功耗模式,减少系统功耗。
(2)在某些情况下,多个GPIO引脚可以共享同一个中断线。例如,PA0、PA1、PA2可以共享EXTI0_IRQn中断。通过检查中断标志位,可以确定是哪个引脚触发了中断。
例:

void EXTI0_IRQHandler(void) {if (EXTI_GetITStatus(EXTI_Line0) != RESET) {// 处理PA0中断EXTI_ClearITPendingBit(EXTI_Line0);}if (EXTI_GetITStatus(EXTI_Line1) != RESET) {// 处理PA1中断EXTI_ClearITPendingBit(EXTI_Line1);}if (EXTI_GetITStatus(EXTI_Line2) != RESET) {// 处理PA2中断EXTI_ClearITPendingBit(EXTI_Line2);}
}

(3)中断的嵌套应用:
在某些复杂的应用场景中,可能需要支持中断嵌套。通过合理配置中断优先级,可以实现高优先级中断打断低优先级中断。高优先级不能一直触发,不然低优先级始终得不到响应,具体看实际应用。
例:

// 配置高优先级中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;// 配置低优先级中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

(4)中断响应
在某些实时性要求较高的应用中,中断延迟是一个关键指标。通过优化中断处理函数,减少不必要的操作,可以降低中断延迟。
(5)中断中执行
中断中不要放太多代码,也就是下次中断来时,本次中断中的代码最好都已经执行完了,不然就会“互踩”,这个中断执行时间要注意,越短越好,阔以设置标志位。

// 优化的中断处理函数
void EXTI0_IRQHandler(void) {if (EXTI_GetITStatus(EXTI_Line0) != RESET) {// 快速处理中断g_interrupt_flag=1; //中断进入标志  别的循环扫描中去清除并执行中断程序EXTI_ClearITPendingBit(EXTI_Line0);}
}

抛砖引玉,学海无涯,继续努力。

http://www.dtcms.com/wzjs/393004.html

相关文章:

  • 网站推广工具大全成都网络优化公司有哪些
  • 做网站设计网站建设推广百度竞价排名事件
  • 怎么做化妆品网站内容规划seoshanghai net
  • 个人网站设计理念sem培训学校
  • 英文网站建设网站sem分析是什么意思
  • 做拼多多代运营网站脑白金网络营销
  • 网站建设方面书籍seo推广软件
  • 搜索引擎网站有哪些seo试用软件
  • 选服务好的网站建设公有创意的网络营销案例
  • 福建省建设银行网站百度站长平台网站收录
  • 深圳 互联网公司武汉企业seo推广
  • 做网站怎么赚钱 111指数
  • 土巴兔装修公司电话seo对网站优化
  • 南宁新站seo网站死链检测工具
  • 佛山企业网站建设渠道2022年时事政治热点汇总
  • 免费的独立站建站平台百度2019旧版本下载
  • 高端网站建设服务seo教程技术整站优化
  • 网站如何做百度实名认证关闭站长工具seo综合查询
  • 云南域名注册网站建设百度新闻搜索
  • 政府网站做减法公务员考题太原关键词优化软件
  • 做网站用的动漫资料什么是软文推广
  • 找人帮忙做网站在线网站流量查询
  • 普洱市网站建设制作站长统计app软件大全
  • 移动互联网开发课程设计选题优化标题关键词技巧
  • 建站公司用的服务器谷歌下载安装
  • 凡科网站做门户网怎么样seo网络推广方法
  • 美橙网站建设西安楼市最新房价
  • 暴雪战网seo网站建设是什么意思
  • dreamweaver怎么读seo推广是什么工作
  • 怎么做网站内容添加seo关键词推广怎么做