历史上的今天
今天是:2025年01月13日(星期一)
2020年01月13日 | STM32-嵌入式学习笔记02-中断应用概述
2020-01-13 来源:eefocus
STM32中断非常强大,每个外设都能产生中断
中断的优先级数值越小,说明他的中断优先级越高
配置中断需要了解NVIC寄存器:
NVIC是嵌套向量中断控制寄存器,控制中断的相关功能;它与内核紧密结合,是内核里的一个外设。管理着包括内核和片上的所有外设的中断相关功能。
因此配置中断需要参考下面两个头文件:core_cm3.h 和 misc.h
在配置中断的时候我们一般只配置ISER和ICER IP这3个寄存器:
1)ISER使能中断
2)ICER清除中断
3)设置中断的优先级
给出官方手册寄存器的资料



编程要领:
1)使能中断请求(外设中某个中断)
2)配置优先级分组
3)配置NVIC寄存器 初始化NVIC结构体
4)编写中断函数
static void EXTI_NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
//配置NVIC为优先组1
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
//配置中断源:按键1
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn ;
//配置抢占优先级:1
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
//配置子优先级:1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1 ;
//使能中断通道
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE ;
NVIC_Init(&NVIC_InitStructure);
}
史海拾趣
|
原先的产品是通过51单片机 AD 后通过串口发送到上位机,上位机显示采样结果。 现在的打算用ARM来处理,移植CE5到FLASH中。 设计时,位机用EVC或者VS2005开发这个没问题; 但是: 1、下位机如果用ADS开发,ADS的输出是运行在目标机裸机上的,CE ...… 查看全部问答> |
|
如何在单片机里存储一个数据,在掉电以后我再开始运行程序,我能够把那个数据在从单片机里读出来呀,用于本次程序的执行呀! 非常感谢! 不外加芯片… 查看全部问答> |
|
请问wince5.0的usb function controller驱动是怎么被加载的?在Ufnmdd.cpp中的UFN_Init等接口函数怎么被调用执行?在source文件中利用Ufnmdd.cpp只生成了个usbmddbase.lib库而没有生成DLL,在最终的image中也没有打包进去,那怎么样才 ...… 查看全部问答> |
|
VS 2005新建一个C#智能设备工程。 我自己没有向里面添加代码。 然后调试编译部署到我的开发板。 选择的是我开发板sdk部署。 然后开始部署。奇怪,总是提示磁盘空间不足:错误 0x80070070: 磁盘空间不足 后来在wince开发板下,设置内存,还是不 ...… 查看全部问答> |
|
职位信息 · 工作性质:全职 · 工作地点:武汉 · 发布日期:2010/1/4 · 截止日期:2010/3/1 · 招聘人数:3 · 薪 水: · 工作经验:1-2 ...… 查看全部问答> |
|
很奇怪,当我把系统定制的比较小的时候,下载没有任何问题,当我的系统大概大于30M的时后,当我修改了config.bib的MEMORY中的ARM,ARMIMG的起始 地址以便可以容纳镜像大小,编译可以通过,可是通过网线下载快要结束的时候PB弹出报错对话框:Downloa ...… 查看全部问答> |
|
请问图中两个电路,对输出而言有什么区别呢?我现在需要的是10V的基准源。 图中的做法是用:3K电阻和1K电阻的比值+1=4,然后4×2.5V=10V 但是5V输入和15V输入难道就没区别了?不太明白...恳请赐教~~… 查看全部问答> |
|
我的机器是winXP,用USB口虚拟了一个串口,连接了一个modem 正常情况下要在控制面板->电话和调制解调器 中添加一个标准33600bps调制解调器才能正常通信 现在我想自己写程序完成这个安装过程(不调用电话和调制解调器窗口) inf文件用的是C:\\WINDO ...… 查看全部问答> |




