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

机械外协加工网最新订单优化排名推广关键词

机械外协加工网最新订单,优化排名推广关键词,内蒙古建设部网站官网,网站顶部轮播怎么做1.EXTI简介 EXTI是External Interrupt的缩写#xff0c;指外部中断。在嵌入式系统中#xff0c;外部中断是一种用于处理外部事件的机制。当外部事件发生时#xff08;比如按下按钮、传感器信号变化等#xff09;#xff0c;外部中断可以立即打断正在执行的程序#xff0…1.EXTI简介 EXTI是External Interrupt的缩写指外部中断。在嵌入式系统中外部中断是一种用于处理外部事件的机制。当外部事件发生时比如按下按钮、传感器信号变化等外部中断可以立即打断正在执行的程序转而执行一个特定的中断服务程序ISR以响应和处理外部事件。 在大多数嵌入式系统中外部中断可以配置为上升沿触发、下降沿触发、高电平触发、低电平触发等不同的触发方式以适应不同的外部事件类型。外部中断通常用于实时性要求较高的应用如实时控制系统、传感器数据采集等。 在使用外部中断时需要了解具体的硬件平台和编程语言的相关知识以确保正确地配置和处理外部中断。 2.EXTI功能框图讲解 首先中断源从输入线进入总共有20根中断/事件线每一条线对应着PXx,例如EXTI0的输入源可以是PX0(X为A、B、C、D、E、F、G、H、I)因为GPIO端口有16个所以x的取值在0-15EXTI16的输入源是PVD输出EXTI17的输入源是RTC闹钟事件EXTI18的输入源是USB唤醒事件EXTI19的输入源是以太网唤醒事件只适用互联型。 通过外部中断配置寄存器1(AFIO_EXTICR1)配置来选择输入线每一个EXTIx有四个位可以选择16个GPIO端口。 选择输入线和输入源后进入边缘检测电路 边缘检测电路通过寄存器上升沿触发选择寄存器(EXTI_RTSR)和下降沿触发选择寄存器(EXTI_FTSR)选择触发方式。 通过配置的触发方式边缘检测电路输出“1”给到或门然后另一个输入由软件中断事件寄存器输入当软件中断事件寄存器相应位为’0’时写’1’将设置EXTI_PR中相应的挂起位是否相应中断请求由后面的总开关中断屏蔽寄存器(EXTI_IMR)决定这样或门输入两个“1”或门也输出“1”将这个“1”输入给请求挂起寄存器就是中断输入给与门就是事件然后请求挂起寄存器输出“1”给与门然后中断屏蔽寄存器(EXTI_IMR)对应位置“1”开放来自线x的中断请求与门输出“1”给到NVIC中断控制器NVIC在内核中由内核响应这个中断内核就会去查找相应的中断服务函数ESR。 3.GPIO中断实例 3.1.初始化GPIO  通过原理图查看按键对应的GPIO端口 通过原理图可以知道按键SW2连接的是GPIO的PA0那么我们需要初始化PA0并且将PA0连接到EXTI0。 初始化GPIO GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, GPIO_InitStructure); 3.2.初始化EXTI用于产生中断/事件 初始化EXTI方法和初始化GPIO相似首先打开系统时钟然后选择输入线通过函数GPIO_EXTILineConfig()配置接着通过EXTI_InitTypeDef结构体定义一个变量通过这个变量配置EXTI的输入线、模式、触发方式然后将配置的结构体变量的地址传递给初始化EXTI函数EXTI_Init()。 EXTI_InitTypeDef EXTI_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);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_Rising;EXTI_InitStructure.EXTI_LineCmd ENABLE;EXTI_Init(EXTI_InitStructure); 3.3.初始化NVIC 初始化NVIC和初始化GPIO和初始化EXTI相似都需要通过定义结构体变量去配置相应参数。首先定义结构体变量NVIC_InitStructure。然后设置中断优先级级分组通过函数NVIC_PriorityGroupConfig(),有5个组 没个组有主优先级和次优先级我们配置中断优先级的时候stm32使用了四个位当主优先级只是用0位时取值就是0次优先级就使用四个位取值就是0-15。同理当主优先级只是用1位时取值就是0-1次优先级就使用3个位取值就是0-7以此类推。然后通过定义的结构体变量配置中断源抢占优先级子优先级。注意这里的中断源配置如果是GPIO0-4都是单独的EXTIx_IRQn,但是如果你说4以后的端口就会使用到EXTI9_5_IRQn和EXTI15_10_IRQn。然后将配置的结构体变量的地址传递给初始化NVIC初始化函数NVIC_Init()。 NVIC_InitTypeDef NVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);NVIC_InitStructure.NVIC_IRQChannel EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority 1;NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;NVIC_Init(NVIC_InitStructure); 3.4.编写中断服务函数 通断服务函数都放在stm32f10x_it.c这个文件里面中断服务函数的名字已经定义好了放在startup_stm32f10x_hd.s文件的向量表中。通过if语句判断函数EXTI_GetITStatus()的返回值来判断是否产生中断如果产生中断EXTI_GetITStatus()返回值位1。通过宏定义LED_G_TOGGLE #define LED_G_TOGGLE {GPIOB-ODR ^ GPIO_Pin_0;} 通过控制端口输出数据寄存器ODR异或运算控制LED交替异或运算符与1异或改变与0异或不变。为了防止一直在中断里面最后需要清除中断位通过函数 EXTI_ClearITPendingBit()。 void EXTI0_IRQHandler(void) {if(EXTI_GetITStatus(EXTI_Line0) ! RESET){LED_G_TOGGLE;}EXTI_ClearITPendingBit(EXTI_Line0); }3.5.main函数 最后通过main函数调用前面写的函数 int main(void) {LED_GPIO_RCC();LED_GPIO_Config();EXIT_Key_Config();while(1){} }
http://www.hkea.cn/news/14556686/

相关文章:

  • 直播网站开发报价网站26个页面收费
  • 欧美风格网站特点淮南论坛
  • 网站可以做腾讯广告联盟温州建设局官方网站
  • 企业网站策划书下载夏县做网站
  • 外国网站建设公司网站后缀cc
  • 自助建网站平台新媒体营销策划方案范文
  • 防伪网站模板中国网络推广网站排名
  • wordpress 手工网站wordpress上传图片后台目录
  • 苏州做网站设计的公司制作网站要找什么公司
  • 网站推广的主题新闻资讯到底是哪个公司的
  • 北京做网站ezhixi网络销售推广是做什么
  • 佛山建网站定制费用广告创意设计的影响因素
  • 网站logo怎么做动态猪八戒网logo设计
  • 企业网站推广的方法有网站开发 百度编辑器
  • 公司网站建设推广方案建设购物网站需要多少费用
  • phpstud可以做几个网站信阳住房和城乡建设局网站
  • 庐山市建设规划局网站您提供的产品已经提交过网站备案
  • 泰安市建设职工培训中心网站官网WordPress文章添加灯箱
  • 网站改版怎么办做网站什么一级导航二级导航
  • 广州建设网站哪家好淄博做网站优化
  • 加关键词的网站北京公司摇号
  • ftp网站怎么建深圳做营销网站设计
  • 企业网站制作心得wordpress queryposts
  • 如何做好网站开发项目需求分析网站建设的前景
  • 珠海专业做网站公司做二维码网站
  • 网站网上商城建设方案成都专业网站排名推广
  • 关于免费制作网页的网站怎么下载网站的模板
  • 网站空间内存百度网站关键词排名查询
  • 没有英文网站怎么做外贸制作单位网站
  • 亚马逊没有网站怎么做seo做百度手机网站优化快