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

郑州做网站经开区免费创建个人网页

郑州做网站经开区,免费创建个人网页,网站配置支付宝,做外链的网站按键去抖动  通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号波型如下图。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。…
按键去抖动
通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号波型如下图。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为
5ms~10ms。

低电平有效

  • CNFy=10 → 上拉/下拉输入模式。

  • MODEy=00 → 输入模式(忽略速度)。

 


 中断

从发展过程来看:
中断 (interrupt) 最初被用来替换 I/O 操作的轮询处理方式,以提高I/O 处理的效率。
随后,中断又包含了自陷 (trap ,也称为内部中断或是软件中断) 的功能。
后来,中断的概念得到进一步扩大,被定义为 导致程序正常执行流程发生改变的事件 ( 不包括程序的分支情况) 。可把概念被扩大的中断称为广义中断。
实际应用中,广义的中断通常被分为中断(Interrupt)、自陷 (Traps)和异常(exception)等类别。
中断 是由于 CPU 外部的原因而改变程序执行流程的过程,属于异步事件,又称为硬件中断。自陷和异常则为同步事件;
自陷 表示通过处理器所拥有的软件指令、可预期地使处理器正 在执行的程序的执行流程发生变化,以执行特定的程序。自陷是显式的事件,需要无条件地执行;
Motorola 68000 系列中的 Trap 指令
ARM 中的 SWI 指令
Intel 80x86 中的 INT 指令
异常 CPU 自动产生的自陷,以处理异常事件。
如被 0 除、执行非法指令和内存保护故障等。
异常没有对应的处理器指令,当异常事件发生时,处理器也需要无条件地挂起当前运行的程序,执行特定的处理程序

 STM32的中断

CM3 内核支持256 个中断,其中包含了16 个内核中断和240个外部中断,并且具有256级的可编程中断设置。但STM32 只用了CM3 内核的一部分。
STM32 有 76 个中断 ,包括16 个内核中断和60 个可屏蔽中断,具有 16 级 可编程的中断 优先级
常用的就是这60 个可屏蔽中断,以下介绍的就是这60 个可屏蔽中断。
NVIC 是(Nested vectoredinterrupt controller,嵌套向量中断控制器);用于为中断分组,从而分配抢占优先级和响应优先级。
ISER[2]:ISER 全称是:Interrupt Set-Enable Registers, 这是一个 中断使能寄存器组 。上面说了STM32 的可屏蔽中断 只有 60 个 ,这里用了2 个32 位的寄存器,总共可以表示64 个中断。而STM32 只用了其中的前60 位。
ISER[0]的 bit0~bit31 分别对应中断0~31。ISER[1]的bit0~27对应中断32~59;这样总共60 个中断就分别对应上了。你要 使能某个中断,必须设置相应的ISER位为1 ,使该中断被使能(这里
仅仅是使能,还要配合中断分组、屏蔽、IO 口映射等设置才算是一个完整的中断设置)。

 

IPR[15]:全称是:Interrupt Priority Registers,是一个 中断优先级控制的寄存器组 。这个寄存器组相当重要!STM32 的中断分组与这个寄存器组密切相关。
IPR 寄存器组由15 个32bit 的寄存器组成 ,每个可屏蔽中断占用8bit,这样总共可以 表示15*4=60 个可屏蔽中断 。刚好和STM32 的可屏蔽中断数相等。IPR[0]的[31~24], [23~16],[15~8],[7~0]分别对应中中断3~0,依次类推,总共对应60 个外部中断。

EXTI External interrupt/event controller 外部中断/ 事件控制器,管理了控制器的 20 个中断 /
事件线。每个中断 / 事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿
的检测。 EXTI 可以实现对每个中断 / 事件线进行单独配置,可以单独配置为中断或者事件,以及
触发事件的属性。
EXTI 支持配置 20 个中断和事件屏蔽位;
GPIO 端口连接到 16 个外部中断 / 事件线上 ;EXTI_Line0—EXTI_Line15
EXTI_Line16 连接到 PVD 输出 ;
EXTI_Line17 连接到 RTC 闹钟事件 ;
EXTI_Line18 连接到 USB 唤醒事件 ;
EXTI_Line19 连接到以太网唤醒事件 ( 只适用于互联型产品 );

 

 

 


STM32键盘中断编程
1 ) 初始化IO口为输入。
这一步设置你要作为外部中断输入的 IO 口的状态,可以设置为上拉/ 下拉输入,也可以设置为浮空输入,但浮空的时候外部一定要带上拉,或者下拉电阻。否则可能导致中断不停的触发。 在干扰较大的地方,就算使用了上拉/ 下拉,也建议使用外部上拉/ 下拉电阻,这样可以一定程度防止外部干扰带来的影响。
GPIOC->CRL&=0XFFFFF000;//PC0-2设置成输入   清零PC0、PC1、PC2的配置位
GPIOC->CRL|=0X00000888;  设置PC0、PC1、PC2为上拉/下拉输入
  • CNFy[1:0]=10:上拉/下拉输入模式。

  • MODEy[1:0]=00:输入模式(忽略输出速度)。

2 ) 开启IO口复用时钟,设置IO口与中断线的映射关系。
STM32 IO 口与中断线的对应关系需要配置外部中断配置寄存器 EXTICR ,这样我们要先开启复用时钟,然后配置 IO 口与中断线的对应关系。才能把外部中断与中断线连接起来。
RCC->APB2ENR|=1<<4; // 使能 PORTC 时钟
3 ) 开启与该IO口相对的线上中断/ 事件,设置触发条件。
这一步,我们要配置中断产生的条件, STM32 可以配置成上升沿触发,下降沿触发,或者任意电平变化触发,但是不能配置成高电平触发和低电平触发。这里根据自己的实际情况来配置,
同时要开启中断线上的中断。这里需要注意的是:如果使用外部中断,并设置该中断的EMR 位的话,会引起软件仿真不能跳 到中断,而硬件上是可以的。而不设置EMR ,软件仿真就可以
进入中断服务函数,并且硬件上也是可以的。建议不要配置EMR位。
Ex_NVIC_Config(GPIO_C,0,FTIR); // 下降沿触发
Ex_NVIC_Config(GPIO_C,1,FTIR); // 下降沿触发
Ex_NVIC_Config(GPIO_C,2,FTIR); // 下降沿触发
4 ) 配置中断分组(NVIC),并使能中断。
这一步,我们就是配置中断的分组,以及使能,对 STM32 的中断来说,只有配置了NVIC 的设置,并开启才能被执行,否则是不会执行到中断服务函数里面去的。
MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,子优先级2,组2
5 ) 编写中断服务函数。
这是中断设置的最后一步,中断服务函数,是必不可少的,如果在代码里面开启了中断,但是没编写中断服务函数,就可能引起 硬件错误,从而导致程序崩溃!所以在开启了某个中断后,一定
要记得为该中断编写服务函数。在中断服务函数里面编写你要执行的中断后的操作。
void EXTI0_IRQHandler(void)
{ …………
EXTI->PR=1<<0; //清除LINE0上的中断标志位
}

 

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

相关文章:

  • 怎么根据网站前端做网站后台店面怎么做位置定位
  • 网站打开慢是什么原因有哪些免费网站可以发布广告
  • 重庆公司网站开发临沂seo推广外包
  • 市委网站建设微信crm管理系统
  • 网站开发全包拼多多seo是什么意思
  • php动态网站开发实例教程成人计算机速成培训班
  • 简易企业网站seo最强
  • 设计师喜欢的购物网站seo推广灰色词
  • 网站建设公司郑州百度seo公司
  • 网站流量 用什么表示广州做seo的公司
  • 2网站建设公司b站推出的短视频app哪个好
  • 今日淄博最新消息seo兼职工资一般多少
  • 手机网站翻页效果网络营销的好处和优势
  • 精品网站做爆款西地那非片吃了能延时多久
  • 做go kegg的在线网站吸引顾客的营销策略
  • 毕业设计做系统好还是网站好品牌营销策略分析论文
  • 网站后台忘了郑州网站制作公司哪家好
  • 专业网站建设网站2023年7 8月十大新闻
  • 网站开发与维护视频教程google关键词工具
  • 可以用css3做响应式网站吗seo 百度网盘
  • 可信网站认证查询泰安网站建设
  • 汕头网站排名优化erp123登录入口
  • 做网站的是什么职位关键词是怎么排名的
  • 青岛当地的做公司网站的能够免费换友链的平台
  • 欧阳网站建设品牌推广策略
  • 微信开发网站扬州网络推广公司
  • wordpress demo iframeseo职业规划
  • 建设导航网站seo公司上海牛巨微
  • 关于网站设计的价格济南网络优化厂家
  • 柳州市网站建设东莞网站制作