中断向量表STM32怎样配置

2025-01-21 00:51:26
推荐回答(3个)
回答1:

如果你使用的是ST的库的话,那么在汇编启动文件中已经定义好了。和大多数芯片不一样的是,stm32的中断向量表中存放的不是一条跳转指令,而是一个入口地址。假如说要自己编写的话,一定要用这样的方式:DCD XXXXX (其中XXXX就是中断服务函数的入口地址,至于转到这个函数由芯片自己处理)
中断向量表默认情况下起始于0x04,(0x00用于堆栈栈顶的地址).对于STM32来说,中断向量表的长度大概是60多还是80多字(记不太清了).每个字代表一个中断向量.
假如使用的是官方库函数的话,那么所有的中断向量表都已经定义好了.比如,TIM1的中断他可能就定义了类似 DCD TIM1ISR 之类的语句
那么我们在主函数中只要定义一个一个isr即可, 比如 定义一个void TIM1ISR()函数就行(必须与那么函数对应).然后设置下nvic和相关外设寄存器即可.
中断的工作过程就是中断向量的映射过程.至于中断重映射是指把中断向量表移动到其它的位置上去.通常和分散加载一起使用,为了使程序在RAM中运行,自然也要把中断向量表放到RAM中,加快程序的运行速度.如果是新手,先别研究这么深的内容,就把中断向量表定死在flash的开头部分,默认地址即可.

回答2:

发生中断后,软件会直接跑到中断入口地址那,你在那入口地址那写好你自己想要的中断处理程序就可以的了!

回答3:

学习中