历史上的今天
今天是:2025年07月29日(星期二)
2019年07月29日 | 读STM32F4xx中文参考手册笔记(四)
2019-07-29 来源:eefocus
中断和事件
总述
M4的内核最多支持256个中断,但是STM32只用了其中一部分不到100个。
中断分两种,一种是内核中断(十个左右),这是M4内核自己玩的复位,系统服务等,不用去管它(水平不够,管也管不了);还有一种是可屏蔽中断(八九十个),如定时器、串口、spi、DMA等,需要用什么就用。
EXTI 外部中断,可以自己配置发生它们的事件(中断)的请求,可以软件触发,也可以硬件,上升沿下降沿的io电平。
刚开始学习的时候不清楚中断和事件两者之间有什么区别,后来研究了EXTI框图,了解到,当检测到输入触发电平的时候,信号会分成两条路,一条会由电路直接产生相应的脉冲,这就是事件,而另一条则会通过NVIC中断需要软件进行中断优先级配置,这就是中断。
外部中断/事件线(EXTI)
共有23个外部中断线,16个分别链接到GPIO口上,另外七条连RTC,PVD,以太网唤醒等
可用软件触发,通过写入软件中断事件寄存器(EXTI_SWIER)触发。
寄存器配置
中断屏蔽与事件屏蔽寄存器是根据使用需要,决定屏蔽哪一个。
上升沿,下降沿寄存器,我一般都是都置位,信号跳变了,就有效
软件中断事件寄存器和挂起寄存器是使用软件强行触发中断时用的,前者置位后触发该中断,再通过挂起寄存器相应位置置位清除前者的状态(不能直接通过软件中断事件寄存器置零取消)。
史海拾趣
|
AT89C51如何通过(USB-HOST)ISP1362读取U盘MP3数据 C程序 本人想利用AT89C51SND1C单片机读取U盘的数据。不知道怎么读取。。。请教高手指点一二,最好是C语言写的,我的编译器是Keil C … 查看全部问答> |
|
关于mipsel-linux交叉编译strongswan的问题 我在交叉编译strongswan的时候,遇到一个问题,在网上找了好久,也没有找到确切的答案。 问题如下: mipsel-linux-ld: ../../../lib/libcrypto/libblowfish/libblowfish/libblowfish.a(bf_skey.o):linking PIC files with non-PIC files Bad val ...… 查看全部问答> |
|
我在keil下开发cortex m3系列的lm3s811.但是我想用到c标准库的string函数等等。如果没有把C库的lib加入keil的话。那么程序会跑到未定义的向量表~~~… 查看全部问答> |
|
请问: pucMACArray[0] = ((ulUser0 >> 0) & 0xff); pucMACArray[1] = ((ulUser0 >> 8) & 0xff); pucMACArray[2] = ((ulUser0 >> 16) & 0xff); pucMACArray[3] ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:40 编辑 在TI E2E社区中发现了几篇不错的文章,特意翻译过来分享给大家,其中Bruce Trump系列关于放大器有很好的见解,特此供大家参考。 摘要:虽然 Bode 图是一种很不错的分析工具,但是您可能还没有发现, ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 04:06 编辑 我用的是STM32F103ZE,摄像头是带FIFO的ov7670,显示屏是ILI9320(320×240),中断的程序如下: void EXTI15_10_IRQHandler(void) { u16 i,j; u16 t1,t2; EXTI_Clear ...… 查看全部问答> |
|
各位好! 我们在对AD9361寄存器进行初始化配置过程中,出现247位寄存器指令读取失败的问题,导致初始化校准无法继续进行, 配置指令:{0x02,0x47,0x11}, //SPIRead   ...… 查看全部问答> |




