资料介绍
中断基本编程方法
利用《Stellaris外设驱动库》编写一个中断程序的基本方法如下:
1. 使能相关片内外设,并进行基本的配置
对于中断源所涉及的片内外设必须要首先使能,使能的方法是调用头文件《sysctl.h》中的函数SysCtlPeripheralEnable( )。使能该片内外设以后,还要进行必要的基本配置。
2. 设置具体中断的类型或触发方式
不同片内外设具体中断的类型或触发方式也各不相同。在使能中断之前,必须对其进行正确的设置。以GPIO为例,分为边沿触发、电平触发两大类,共5种,这要通过调用函数GPIOIntTypeSet( )来进行设置。
3. 使能中断
对于Stellaris系列ARM,使能一个片内外设的具体中断,通常要采取分3步走的方法:
调用片内外设具体中断的使能函数
调用函数IntEnable( ),使能片内外设的总中断
调用函数IntMasterEnable( ),使能处理器总中断
4. 编写中断服务函数
中断服务函数从形式上跟普通函数类似,但在命名及具体的处理上有所不同。
中断服务函数命名 对于GCC编译器下的程序,中断服务函数的名称是事先约定好的。用户可以打开启动文件“LM3S_Startup.s”来查看每个中断服务函数的标准名称(参见表1.1)。例如,GPIOB端口的中断服务函数名称是GPIO_Port_B_ISR,对应的函数头应当是“void GPIO_Port_B_ISR(void)”,参数和返回值都必须是void类型。在Keil或IAR开发环境下,中断服务函数的名称可以由程序员自己指定,但还是推荐采用GCC下的标准名称,这样有利于程序移植。
中断状态查询 一个具体的片内外设可能存在多个子中断源,但是都共用同一个中断向量。例如GPIOA有8个管脚,每个管脚都可以产生中断,但是都共用同一个中断向量号16,任一管脚发生中断时都会进入同一个中断服务函数。为了能够准确区分每一个子中断源,就需要利用中断状态查询函数,例如GPIO的中断状态查询函数是GPIOPinIntStatus( )。如果不使能中断,而采取纯粹的“轮询”编程方式,则也是利用中断状态查询函数来确定是否发生了中断以及具体是哪个子中断源产生的中断。
中断清除 对于Stellaris系列ARM的所有片内外设,在进入其中断服务函数后,中断状态并不能自动清除,而必须采用软件清除(但是属于Cortex-M3内核的中断源例外,因为它们不属于“外设”)。如果中断未被及时清除,则在退出中断服务函数时会立即再次触发中断而造成混乱。清除中断的方法是调用相应片内外设的中断清除函数。例如,GPIO端口的中断清除函数是GPIOPinIntClear( )。
程序清单1.1以GPIOA中断为例,给出了外设中断服务函数的经典编写方法。关键是先将外设的中断状态读到变量ulStatus里,然后及时地、放心地清除全部中断状态,剩下的工作就是排列多个if语句分别进行处理了。
程序清单1.1 典型的中断服务函数编写方法
- C语言标准库函数 0次下载
- 基于标准库函数与基于HAL库函数的stm32编程方式对比 27次下载
- stm32下标准库函数与HAL库函数编程方式的差异 15次下载
- 详细介绍STM32单片机常用库函数资料下载 9次下载
- STM32的标准例程库函数资料合集免费下载 24次下载
- STM32 V3.5固件库函数调用说明中文版免费下载 0次下载
- Keil C51的库函数参考资料详细说明 15次下载
- STM32 IAR的库函数资料免费下载 42次下载
- 51单片机常用库函数程序免费下载 22次下载
- Alientek MiniSTM32开发板例程库函数版本资料合集免费下载 0次下载
- stm32f2xx固件库手册详细介绍了stm32f2xx的库函数及使用方法 277次下载
- ALIENTEK MiniSTM32开发板例程-库函数版本 0次下载
- ALIENTEK MiniSTM32开发板例程(库函数版本) 0次下载
- stm32库函数解释 14次下载
- CodeVisionAVR C语言库函数介绍 108次下载
- GD32 MCU是如何进入中断函数的 236次阅读
- 学习笔记分享|使用C库函数控制ELF 1开发板的LED 209次阅读
- FreeRTOS中断测试避坑指南 401次阅读
- STM32库函数SystemInit()详解 1609次阅读
- 函数指针的基本概念和语法 373次阅读
- MAXQ微控制器中断编程 424次阅读
- STM32F103使用(3.5)库函数新建工程 3011次阅读
- 如何确保单片机精确定时控制有哪些编程方法详细说明 3695次阅读
- 单片机的中断函数编写方法 7337次阅读
- C51单片机中断函数的修饰方法 2320次阅读
- 浅析单片机C语言函数之中断函数 1.1w次阅读
- 关于单片机的中断系统的详细介绍 3.1w次阅读
- 库函数头文件大全 9028次阅读
- stm32寄存器版矩阵键盘库函数(附详细注释) 5216次阅读
- TMS320C32的中断编程方法介绍 1564次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 11次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5DIY动手组装LED电子显示屏
- 0.98 MB | 3次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机PM2.5检测系统程序
- 0.83 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537797次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191186次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多