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

备案 网站信息 备注怎么给自己的网站推广

备案 网站信息 备注,怎么给自己的网站推广,建设电商网站的个人心得,怎么制作网站记事本目录 1.什么是 NVIC#xff1f; 2.NVIC寄存器 3.中断优先级 4.NVIC的配置 设置中断分组​编辑 配置某一个中断的优先级 5.什么是EXTI 6.EXTI和NVIC之间的关系 7.SYSCFG 的介绍 1.什么是 NVIC#xff1f; NVIC是一种中断控制器#xff0c;主要用于处理 ARM Cort…目录 1.什么是 NVIC 2.NVIC寄存器  3.中断优先级  4.NVIC的配置  设置中断分组​编辑 配置某一个中断的优先级 5.什么是EXTI 6.EXTI和NVIC之间的关系  7.SYSCFG 的介绍  1.什么是 NVIC NVIC是一种中断控制器主要用于处理 ARM Cortex-M 微控制器的中断管理。NVIC 负责处理中断优先级、中断向量表以及中断使能和禁止等任务。 中断向量表 NVIC 维护了中断向量表其中包含了中断服务程序的入口地址。当中断发生时CPU会根据中断号或中断向量在中断向量表中查找相应的中断服务程序的入口地址。 中断优先级 NVIC 允许为每个中断配置优先级。这些优先级决定了中断在系统中的响应顺序。Cortex-M架构中中断优先级通常是基于位宽的较低位的值表示较高的优先级。 嵌套中断 NVIC 支持嵌套中断即在处理某个中断时如果发生更高优先级的中断请求系统可以中断当前中断服务程序处理更高优先级的中断然后返回继续处理低优先级的中断。这种特性对于实时系统和复杂任务处理非常有用。 中断使能和禁止 NVIC 允许对每个中断进行使能和禁止。这使得可以在运行时动态地配置系统中的中断。 中断状态 NVIC 提供了一些寄存器用于查询和管理中断状态例如检查某个中断是否处于挂起状态。 中断控制寄存器 NVIC 通过一系列寄存器如 NVIC_ISER、NVIC_ICER、NVIC_ISPR、NVIC_ICPR提供中断的使能、禁止、挂起和清除等功能。 2.NVIC寄存器  typedef struct {__IOM uint32_t ISER[8U]; /* 中断使能寄存器 */uint32_t RESERVED0[24U];__IOM uint32_t ICER[8U]; /* 中断清除使能寄存器 */uint32_t RSERVED1[24U];__IOM uint32_t ISPR[8U]; /* 中断使能挂起寄存器 */uint32_t RESERVED2[24U];__IOM uint32_t ICPR[8U]; /* 中断解挂寄存器 */uint32_t RESERVED3[24U];__IOM uint32_t IABR[8U]; /* 中断有效位寄存器 */uint32_t RESERVED4[56U];__IOM uint8_t IP[240U]; /* 中断优先级寄存器8Bit 位宽 */uint32_t RESERVED5[644U];__OM uint32_t STIR; /* 中断触发中断寄存器 */ } NVIC_Type; STM32F407 的中断在这些寄存器的控制下有序的执行的。只有了解这些中断寄存器才能 方便的使用 STM32F407 的中断。下面重点介绍这几个寄存器 1.ISER[8]Interrupt Set Enable Register中断使能寄存器 2.ICER[8]Interrupt Clear Enable Registers中断除能寄存器3.ISPR[8]Interrupt Set Pending Registers中断使能挂起控制寄存器通过置 1可以将正在进行的中断挂起而执行同级或更高级别的中断。写 0 是⽆效的。 4.ICPR[8]Interrupt Clear Pending Registers中断解除挂起控制寄存器5.IABR[8]Interrupt Active Bit Registers是⼀个中断激活标志位寄存器组。对应位所代表的中断和 ISER ⼀样如果为 1则表示该位所对应的中断正在被执行。这是⼀个只读寄存器通过它可以知道当前在执行的中断是哪一个。在中断执行完了由硬件自动清零。6.IP [240]Interrupt Priority Registers中断优先级控制寄存器组。由240个8bit的寄存器组成每个可屏蔽中断占用8bit。但我们只用IP[81] - IP[0]这82个。并且每个中断通道占用的8bit并没有全部使用而是只用了高4位。 3.中断优先级  STM32 中的中断优先级可以分为抢占式优先级和响应优先级每个中断源都需要被指定这两种优先级。抢占式优先级和响应优先级的区别        抢占优先级抢占优先级高的中断可以打断正在执行的抢占优先级低的中断。        响应优先级抢占优先级相同响应优先级高的中断不能打断响应优先级低的中断。         还有一种情况就是当两个或者多个中断的抢占式优先级和响应优先级相同时那么就遵循 自然优先级看中断向量表的中断排序数值越小优先级越高。         在 NVIC 中由寄存器 NVIC_IPR0-NVIC_IPR59 共 60 个寄存器控制中断优先级每个寄存器的每 8 位又分为一组可以分 4 组所以就有了 240 组宽度为 8bit 的中断优先级控制寄存器 原则上每个外部中断可配置的优先级为 0~255数值越小优先级越高。但是实际上 M3 /M4 /M7 芯片为了精简设计只使用了高四位[7:4]低四位取零这样以至于最多只有 16 级中断嵌 套即 2^416。 抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。 抢占优先级和响应优先级相同的按中断号中断向量表先后执行。 4.NVIC的配置  设置中断分组 配置某一个中断的优先级 函数名称void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct) typedef struct {uint8_t NVIC_IRQChannel; //表示要配置的中断通道或中断号 uint8_t NVIC_IRQChannelPreemptionPriority; //表示中断的抢占优先级。uint8_t NVIC_IRQChannelSubPriority; //表示中断的响应优先级。 FunctionalState NVIC_IRQChannelCmd; //表示中断通道的使能状态。 } NVIC_InitTypeDef; 下面是结构体成员的解释 NVIC_IRQChannel 表示要配置的中断通道或中断号。对于 ARM Cortex-M 微控制器中断通道的编号是硬件定义的代表不同的中断源。例如USART1 的中断通道号是 USART1_IRQn。 NVIC_IRQChannelPreemptionPriority 表示中断的抢占优先级。中断的抢占优先级决定了在同一时间发生多个中断时哪个中断可以立即被处理而哪些需要等待。这是一个 0 到 N-1N 是抢占优先级位数的值值越小表示优先级越高。 NVIC_IRQChannelSubPriority 表示中断的子优先级。在同一抢占优先级组内子优先级决定了不同中断的响应顺序。这是一个 0 到 N-1N 是子优先级位数的值值越小表示优先级越高。 NVIC_IRQChannelCmd 表示中断通道的使能状态。可以为 ENABLE 或 DISABLE分别表示使能或禁止相应的中断通道。 5.什么是EXTI EXTI 是外部中断External Interrupt控制器的缩写用于处理与外部事件通常是硬件引脚的状态变化相关的中断。在 STM32 微控制器中EXTI 模块与 GPIO 模块一起使用以便在特定事件如边沿触发、电平触发等发生时触发相应的中断。  初始化函数:void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);EXTI外设的时钟默认是开启的 typedef struct {uint32_t EXTI_Line; EXTIMode_TypeDef EXTI_Mode; EXTITrigger_TypeDef EXTI_Trigger; FunctionalState EXTI_LineCmd; }EXTI_InitTypeDef; EXTI_Line 指定要启用或禁用的外部中断线。这个参数可以是 EXTI_Lines 枚举类型中的任何组合值表示一个或多个中断线。例如EXTI_Line0 表示外部中断线0。EXTI_Mode 指定外部中断线的工作模式。这个参数可以是 EXTIMode_TypeDef 枚举类型的值表示中断线的触发模式。例如EXTI_Mode_Interrupt 表示中断模式。EXTI_Trigger 指定外部中断线的触发方式即触发信号的边沿。这个参数可以是 EXTITrigger_TypeDef 枚举类型的值表示中断线触发的方式如上升沿、下降沿等。EXTI_LineCmd 指定所选外部中断线的新状态。这个参数可以是 FunctionalState 枚举类型的值表示中断线的使能或禁止状态可以是 ENABLE 或 DISABLE。 6.EXTI和NVIC之间的关系  EXTI 模块配置中断线 EXTI 负责配置外部中断线将外部事件通常是引脚状态的变化连接到中断系统。它定义了中断线的触发条件、使能状态等。EXTI 允许你设置哪些引脚上的事件会触发中断以及中断是由上升沿、下降沿还是上升和下降沿都触发。配置好 EXTI 后当与之相关联的外部事件发生时EXTI 会产生中断请求。 NVIC 确定中断优先级 一旦 EXTI 产生中断请求中断请求会传递给 NVIC。NVIC 负责管理所有中断的优先级。在STM32中中断的优先级是按组管理的NVIC 允许配置每个中断的优先级。这就是为什么在使用外部中断时需要通过 NVIC 设置中断的优先级。 中断处理函数 在 NVIC 配置好中断优先级后当外部中断被触发时NVIC 会根据中断优先级的设定决定是否打断当前正在执行的程序。如果中断被接受NVIC 会跳转到相应的中断处理函数该函数是由用户编写的通常用于处理与中断相关的任务。在中断处理函数中需要清除相应的中断标志通常是通过 EXTI_ClearITPendingBit 来完成。 7.SYSCFG 的介绍  SYSCFG 是STM32微控制器中的一个系统配置寄存器用于配置和控制一些系统级别的功能和外设。主要的作用包括配置外部中断线、使能内部的传感器和控制外设的引脚映射。 1.中断线映射 SYSCFG 允许将外部中断线映射到不同的中断通道。在使用外部中断时需要配置 SYSCFG 以选择相应的中断通道。 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); //上述例子将 GPIOA 的引脚0与外部中断线0相关联。 2.定时器触发映射 对于某些定时器SYSCFG 允许配置触发源。例如可以将外部信号映射到定时器的触发输入。 TIM1_ETR_Config(TIM1_ETRSource_TI1, TIM1_ExtTRGPSC_DIV1, TIM1_ExtTRGPolarity_NonInverted, 0x00); //上述例子配置了TIM1定时器的触发源。 3.内部传感器使能 SYSCFG 允许使能内部的温度传感器和电压检测器。 SYSCFG_VBATMonitoringCmd(ENABLE); //上述例子使能了电池电压检测器。 4.BOOT模式配置 SYSCFG 允许配置启动时的引脚状态以确定系统启动时的模式。 SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM); //上述例子将内部SRAM映射到系统的起始地址。 第一步时钟的使能 使能GPIO时钟使能SYSCFG时钟** EXTI和 NVIC的时钟默认是打开的 第二步配置GPIO 第三步配置SYSCFG 配置函数SYSCFG_EXTILineConfigEXTI_PortSourceGPIOE,EXTI_PinSource4功能选择中断引脚 第四步初始化EXTI 初始化函数EXTI_Init 第五步配置NVIC 设置优先级NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//整个⼯程只设置⼀次 初始化NVIC_Init(); 第六步编写中断函数 #include stm32f4xx.h // Device headervoid EXTI3_IRQHandler(void){//判断是否有中断if(EXTI_GetITStatus(EXTI_Line3)SET){GPIO_SetBits(GPIOF,GPIO_Pin_9);GPIO_SetBits(GPIOF,GPIO_Pin_10);EXTI_ClearITPendingBit(EXTI_Line3);} } void EXTI4_IRQHandler(void){//判断是否有中断if(EXTI_GetITStatus(EXTI_Line4)SET){GPIO_ResetBits(GPIOF,GPIO_Pin_9);GPIO_ResetBits(GPIOF,GPIO_Pin_10);EXTI_ClearITPendingBit(EXTI_Line4);} }int main(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);GPIO_InitTypeDef GPIO_InitTypeDefStruct;GPIO_InitTypeDef GPIO_InitTypeDefStruct1;//初始化按键GPIO_InitTypeDefStruct.GPIO_Mode GPIO_Mode_IN;//GPIO_InitTypeDefStruct.GPIO_OType GPIO_OType_PP;GPIO_InitTypeDefStruct.GPIO_Pin GPIO_Pin_4 | GPIO_Pin_3;GPIO_InitTypeDefStruct.GPIO_PuPd GPIO_PuPd_UP;GPIO_InitTypeDefStruct.GPIO_Speed GPIO_High_Speed;GPIO_Init(GPIOE,GPIO_InitTypeDefStruct);//初始化LEDGPIO_InitTypeDefStruct1.GPIO_Mode GPIO_Mode_OUT;GPIO_InitTypeDefStruct1.GPIO_OType GPIO_OType_PP;GPIO_InitTypeDefStruct1.GPIO_Pin GPIO_Pin_9 | GPIO_Pin_10;GPIO_InitTypeDefStruct1.GPIO_PuPd GPIO_PuPd_UP;GPIO_InitTypeDefStruct1.GPIO_Speed GPIO_High_Speed;GPIO_Init(GPIOF,GPIO_InitTypeDefStruct1);//配置SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE,EXTI_PinSource3);SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE,EXTI_PinSource4);//EXTI_InitTypeDef EXIT_STRUCT;EXIT_STRUCT.EXTI_LineEXTI_Line4;EXIT_STRUCT.EXTI_ModeEXTI_Mode_Interrupt;EXIT_STRUCT.EXTI_TriggerEXTI_Trigger_Falling;EXIT_STRUCT.EXTI_LineCmdENABLE;EXTI_Init(EXIT_STRUCT);EXTI_InitTypeDef EXIT_STRUCT1;EXIT_STRUCT1.EXTI_LineEXTI_Line3;EXIT_STRUCT1.EXTI_ModeEXTI_Mode_Interrupt;EXIT_STRUCT1.EXTI_TriggerEXTI_Trigger_Falling;EXIT_STRUCT1.EXTI_LineCmdENABLE;EXTI_Init(EXIT_STRUCT1);//设置中断分组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitTypeDef nvic_struct;nvic_struct.NVIC_IRQChannelEXTI4_IRQn;nvic_struct.NVIC_IRQChannelPreemptionPriority0;nvic_struct.NVIC_IRQChannelSubPriority1;nvic_struct.NVIC_IRQChannelCmdENABLE;NVIC_Init(nvic_struct);NVIC_InitTypeDef nvic_struct1;nvic_struct1.NVIC_IRQChannelEXTI3_IRQn;nvic_struct1.NVIC_IRQChannelPreemptionPriority1;nvic_struct1.NVIC_IRQChannelSubPriority2;nvic_struct1.NVIC_IRQChannelCmdENABLE;NVIC_Init(nvic_struct1);while(1){EXTI3_IRQHandler();EXTI4_IRQHandler();} }
http://www.w-s-a.com/news/519103/

相关文章:

  • 河北省住房建设厅政务网站网络营销推广的岗位职责有哪些
  • 上海网站建设优化价格孝义做网站的公司
  • 哪个公司网站做的最好义乌 网站 制作
  • 百度站长工具综合查询wordpress 上传pdf
  • 旅游短租公寓网站建设深圳龙岗招聘网
  • 做海淘是在哪个网站网络查控系统设计方案
  • o2o网站建设代理商微信公众号开发文档
  • 网站设计课程总结关于网站备案的公告
  • 网站建设与运营意义到哪查找网站域名
  • 网站及单位网站建设情况眉县住房和城市建设局网站
  • 网站是否能够被恶意镜像wordpress占用
  • 经典设计网站网站等保测评怎么做
  • 重庆做网站公司贴吧廊坊公司快速建站
  • 海外贸易在什么网站做怎么排名到百度第一页
  • 线上注册公司是在哪个网站做高仿网站
  • 网站构架图网上推广平台哪个好
  • 公司网站首页图片素材vi设计的目的和意义
  • 网站的需求分析都有哪些内容济南营销型网站建设团队
  • 怎么选择优秀的网站建设公司生鲜网站开发
  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站
  • 城阳网站建设培训网站后台怎么上传文件