避免给双方造成不必要的经济损失
发布时间:2018-11-04 18:57

  有奖直播 11月27日上午10:00 准时开启!富士通赋能汽车电子技术变革

  首先是外部中断初始化函数void EXTIX_Init(void),该函数严格按照我们之前的步骤来初始化外部中断,首先调用KEY_Init,利用第八章按键初始化函数,来初始化外部中断输入的IO口,接着调用RCC_APB2PeriphClockCmd函数来使能SYSCFG时钟。接着调用函数SYSCFG_EXTILineConfig配置中断线和GPIO的映射关系,然后初始化中断线和配置中断优先级。需要说明的是因为我们的KEY_UP按键是高电平有效的,而KEY0、KEY1和KEY2是低电平有效的,所以我们设置KEY_UP为上升沿触发中断,而KEY0、KEY1和KEY2则设置为下降沿触发。这里我们,把按键的抢占优先级设置成一样,而响应优先级不同,这四个按键,KEY0的优先级最高。

  接下来我们介绍各个按键的中断服务函数,一共4个。先看KEY_UP的中断服务函数void EXTI0_IRQHandler(void),该函数代码比较简单,先延时10ms以消抖,再检测KEY_UP是否还是为高电平,如果是,则执行此次操作(翻转蜂鸣器控制信号),如果不是,则直接跳过,在最后有一句EXTI_ClearITPendingBit(EXTI_Line0);通过该句清除已经发生的中断请求。同样,我们可以发现KEY0、KEY1和KEY2的中断服务函数和KEY_UP按键的十分相似,我们就不逐个介绍了。

  这里向大家重申一下,STM32F4的外部中断0~4都有单独的中断服务函数,但是从5开始,他们就没有单独的服务函数了,而是多个中断共用一个服务函数,比如外部中断5~9的中断服务函数为:void EXTI9_5_IRQHandler(void),类似的,voidEXTI15_10_IRQHandler(void)就是外部中断10~15的中断服务函数。另外,STM32F4所有中断服务函数的名字,都已经在startup_stm32f40_41xx.s里面定义好了,如果有不知道的,去这个文件里面找就可以了。

  该部分代码很简单,先设置系统优先级分组,延时函数以及串口等外设。然后在初始化完中断后,点亮LED0,就进入死循环等待了,这里死循环里面通过一个printf函数来告诉我们系统正在运行,在中断发生后,就执行相应的处理,从而实现第八章类似的功能。

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  stm32f1有三种低功耗模式,有睡眠、停机、待机三种。测试待机模式时,standby模式。发现不能通过IO口中断唤醒,很费解,找了半天原因后。发现是待机模式下,外部只能通过PA0这一个管脚唤醒,其他的都不行,而且必须是上升沿。所以要使用这种低功耗模式的话,原理图需要提前搞好,把唤醒的源连接到PA0上,并且如果唤醒信号是下降沿的话,还要加反相器变换成上升沿。否则等PCB板子做出来出来,只能飞线了。另外,这个唤醒就是真的直接唤醒了,只要中断产生了,就会进中断服务程序,然后单片机整个程序就跑起来了,前提是没有操作系统。

  :/************************************ 标题:一个ADC连续采样 软件平台:IAR for ARM6.21 硬件平台:stm32f4-discovery 主频:168M author:小船 data:2012-02-14

  根据标识符的优先级把帧先后发送出去。 接收:如果接收到的帧的标识符能过过滤表的一系列过滤,该帧信息就会保存在fifo接收邮箱的寄存器里。 过滤器:stm32f407共有28组过滤器,每组过滤器可以设置关联到fifo0或者fifo1,每组都包括两个32位存储器,可以配置成一个32位有位屏蔽功能的标识符过滤器,或者两个32位完全匹配的标识符过滤器,或者两个16位有位屏蔽功能的标识符过滤器,或者四个16位完全匹配的标识符过滤器。如下图所示:我所说的完全

  DACStm32f4内嵌的DAC是12位数字输入,电压输出的数模转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。 主要特点:2个DAC转换器:每个转换器对应1个输出通道8位或者12位单调输出12位模式下数据左对齐或者右对齐同步更新功能噪声波形生成三角波形生成双DAC通道同时或者分别

  寄存器分割,分开哪几位是响应优先级,哪几位是抢占优先级。至于怎样设置分组,就要看一个不属于NVIC的寄存器了。应用中断和复位控制寄存器SCB_AIRCR在这里我们需要看的是[31:16]位和[10:8]位,[31:16]位是识别码,用以保护此寄存器不会被意外修改,[10:8]位就是中断优先级分组的设置位。[31:16]写:VECTKEYSTAT读:VECTKEYRW注册键:读为0xFA05写入时,要写0x05FA到 VECTKEY,否则写入将被忽略。[10:8]中断优先级每一个ARM的M4中断优先级设计为可编程的8位,具体到stm32f4就只留给用户4位共16级的可编程优先级,其中低4位

  ; 硬件平台:stm32f4-discovery 主频:168M author:小船 data:2012-01-17 *************************************/ #include stm32f4xx.h void Led_Init (void); void main ()

  有奖直播 11月27日上午10:00 准时开启!富士通赋能汽车电子技术变革

  英特尔FPGA可编程加速平台介绍,走近AI、数据中心、基因工程等大咖工程

  SimpleLink CC26x2CC13x2 可支持多重协议的无线微控制器

  基于 TI MSP430 Scan Interface 技术的流量表解决方案

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430C2000单片机论坛单片机资源下载单片机习题与教程