事件和中断的区别:
由上图可以看到:事件和中断的触发源都是一样的 均可以是(外部触发沿和软件中断寄存器触发)
1>当一个触发沿到来或者软件触发中断开启 触发信号经过或门一方面进入请求挂起寄存器挂起,而另一方面进入图中的与门触发事件脉冲产生 若配置事件屏蔽寄存器屏蔽事件,将不会启动脉冲发生器产生脉冲信号(但是仍然会置位挂起位,这里纯属自己的理解,按照数据手册说该处不会挂起),2号路挂起后若中断寄存器允许 将向NVIC发送一个中断请求,即触发内核动作
2>中断和事件的区别在于,事件的结果将直接导致一个输出脉冲的产生,并以此触发相应的硬件动作,此过程不需要软件的参与自动完成。 而中断则需要向处理器请求,并进入中断服务函数处理数据,需要软件的参与 降低了CPU的效率
下面为用寄存器配置一个中断的方法
在此之前 我们需要了解几个寄存器:
EXTI_IMR, EXTI_EMR, EXTI_PR, EXTI_RTSR, EXTI_ETSR, EXTI_SWIER, EXTI_PR寄存器
外部中断寄存器 AFIO_EXTI[0-4];
如果需要时间输出 我们还需要AFIO_EVCR寄存器
以上配置为外设的配置 完成后 我们还需要对内核进行一个同样的配置,到此结束
关键字:stm32 外部中断 寄存器配置
引用地址:
stm32外部中断寄存器配置分析
推荐阅读最新更新时间:2024-03-16 16:08
stm32中printf要做哪些配置
在调试代码时,我们经常用printf函数来输出一些打印信息,那么你的UART串口不够用,还要用printf要怎么办? 其实很简单,就是:使用SWO/SWV。 SWO:Serial Wire Output,串行线输出 SWD:Serial Wire Viewer,串行线查看器 使用printf要做哪些配置? 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。 2、在main文件中重定义《fputc》函数 3、在工程属性的 “Target“ -》 ”Code Generation“ 选项中勾选 ”Use MicroLIB“” MicroLIB 是缺省C的备份库,
[单片机]
STM32单片机怎么实现?
有一次我在给内部学员直播的时候,有几个小伙伴问我,为什么要进入临界,临界有什么用? 当时一时半会没想到好的解释,今天举几个例子来解答下。 如果有大佬觉得我说得不对请私聊我纠正,不要偷偷在评论区喷我,我改还不行吗。 进入临界和退出临界,我第一次接触是在ucos系统,当时我也感觉这个专业术语很牛逼很复杂的样子。 等我讲完人话,你会发现其实也挺low。 进入临界就是关闭单片机总中断, 退出临界 就是恢复单片机中断 , 记住最好是恢复,不是打开 ,因为进入临界之前单片机总中断未必是开着的。 那为什么要进入临界?有什么作用? 我们假设一种场景: 我们来看这样一段代码。 假设我们程序执行到第12行,也就是a = 0的位置,*p的值肯定
[单片机]
STM32的AD用DMA方式时的请注意初始化顺序
我突然意识到我的数据好像一直没有错位,看到这个我又试验了一下,发现把DMA_Cmd(DMA1_Channel1, ENABLE);放置到哪儿都是一样的啊~~~ 这个是原帖部分: STM32的AD用DMA方式时的请注意初始化顺序 DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_Result; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA
[单片机]
使用STM32的单个普通定时器产生4路不同频率的方波
1)设置计数器为向上计数模式,将自动重装载寄存器设置为0xFFFF;这样计数器会循环计数。 2)每个定时器通道设置为输出比较模式,并设置比较匹配时对应的输出管脚翻转输出。 3)按照输出波形的半波周期计算出一个数值称作Half_Cyc。例如:定时器的时钟频率是72MHz,需要产生3456Hz的方波,则Half_Cyc = 72M/(3456*2) = 41667;如需要产生200kHz的方波,则Half_Cyc = 72M/(200k*2) = 180。 4)设置每个通道在输出比较匹配时产生中断,在中断中将比较寄存器的数值读出并加上Half_Cyc的数值,如果计算出的数值超过16位则舍弃超出的部分,再把这个新的数值写回相
[单片机]
意法半导体推出新系列STM32微控制器
STM32 H7新系列产品成为ARM Cortex -M内核微控制器性能新标杆 大容量片上存储器,丰富的通信外设,为物联网设备提供先进安全服务 中国,2016年10月21日 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)推出新的运算性能创记录的STM32H7系列微控制器。新系列内置STM32平台中存储容量最高的SRAM(1MB)、高达2MB闪存和种类最丰富的通信外设,为实现让智慧更高的智能硬件无处不在的目标铺平道路。 意法半导体自主研发的非常先进的40nm芯片制造工艺,结合产品架构创新,使新系列产品运算性能大幅提升,将处理
[物联网]
STM32芯片系统结构
STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令)、S(系统)、D(数据)三条信号线。内核通过总线矩阵与FLASH、SRAM、外设连接。而外设包括GPIO、USART、I2C、SPI等。 STM32芯片系统结构 STM32F103 系列芯片(不包含互联网型)的系统结构如下: 从上图可以看出,在小容量、中容量和大容量产品中,主系统由以下部分构 成: 四个驱动单元: Cortex-M3 内核 DCode 总线(D-bus) Cortex-M3 内核系统总线(S-bus) 通用 DMA1 通用 DMA2 四个被动
[单片机]
STM32之独立看门狗和窗口看门狗定时器
STM32F10系列芯片内置了2个看门狗,提高了更高的安全性等好处。独立看门狗(IWDG)是由专门的40KHz的低速时钟驱动,即使主时钟发生故障也仍然有效。 IWDG的主要特征有自由运行的递减计数器,时钟由独立的RC振荡器提供,看门狗被激活后,则在计数器计数至0x000时产生复位。 WWDG的主要特征有可编程的自由运行递减计数器,条件复位:当递减计数器的之小于0x40,若看门狗被起动则产生复位,要是在窗口外被重新装载,要是看门狗被起动,则产生复位;如果启动了看门狗并且允许中断,当递减计数器等于0x40是产生早期唤醒中断(EWI),他可以被用于重装载计数器以避免WWDG复位。 以下介绍独立看门狗库函数的使用方法。
[单片机]
为什么学习STM32时还要学习汇编
不同的平台的汇编代码是不一样的,最早的汇编在50年代就发明了,比很多人的父母的年龄都大,老掉牙,不用学习怎么写汇编。一个公司有一个人知道怎么写汇编就够了。但要学习读汇编,为什么学习汇编? 1、性能 直接翻译为机器语言,性能最高。优秀的C语言效率只能达到汇编的80%左右。其他高级语言跟汇编一比差得更远。语言越高级性能越差。很多bootloader和BIOS用汇编写,汇编操作的是电脑,手机刚刚上电时,硬件和初始化的那些命令,它们的性能的要求比较高,效率高开机速度更快。 分析问题 个人认为,编程人与机器对话,我们写C,写JAVA,但是电脑并不认识这些语言,电脑只认识0和1;所以需要一个人来翻译这些语言,这个翻译官就是编译器,但是
[单片机]