今天在看stm32的中断,一时间不理解stm32主函数是如何进入中断函数的,按C编程的理解,会有个特定的入口之类的,但是看demo过程中没有发现入口。
以串口中断服务函数void USART1_IRQHandler(void) 为例,首先用到串口中断,需要先设定串口中断初始化以及串口初始化,另外void USART1_IRQHandler(void) 中断服务函数也应该写好。
发现在stm32的启动文件startup_stm32f10x_md.s中写到
DCD USART1_IRQHandler
其中DCD是一条数据定义伪指令,用于分配一片连续的字存储单元并用指定的数据初始化。
库里定义 #define USART1 ((USART_TypeDef *) USART1_BASE)
同时 #define USART1_BASE (APB2PERIPH_BASE + 0x3800)
当配置好USART1的控制寄存器中断使能时,当发生中断(异常)时,该异常被Cortex-M3内核接受,对应的异常Handler就会执行。而这个响应过程都是硬件来完成的,当然为了决定Handler的入口地址,Cortex-M3使用了“向量表查表机制”。startup_stm32f10x_md.s启动文件已经为USART1_IRQHandler赋予了该地址。所以在异常发生后,CPU进入异常模式,同时程序计数器PC自动指向异常入口地址,也就是USART1_IRQHandler,进而执行中断服务函数中的应用。执行完之后再回到主函数继续执行。
上一篇:STM32 F103 时钟树详解
下一篇:STM32_按键中断
推荐阅读
史海拾趣
在2009年,诚芯微(CXW)公司在深圳成立,标志着其在中国电子行业的初步涉足。公司创始人凭借对集成电路设计领域的深刻理解和前瞻性的市场洞察,决定专注于电源芯片的研发与设计。初期,公司面临着资金紧张、技术储备不足等挑战,但创始人带领团队坚持自主研发,逐步积累了技术实力。
品质一直是Edcon Components Netherlands Cv的生命线。公司始终坚持以客户为中心,注重产品质量和服务的提升。通过引进先进的生产设备和检测设备,加强生产过程中的品质控制,确保每一件产品都符合高标准的质量要求。同时,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。这些举措使得Edcon在客户中树立了良好的品牌形象。
随着公司业务的不断发展,AMP公司意识到与国际伙伴合作的重要性。于是,公司积极寻求与国际知名企业的战略合作,通过技术交流和资源共享,共同开发新型电子产品。这些国际合作不仅提升了AMP公司的技术水平,还进一步提升了其品牌影响力和国际知名度。公司因此获得了更多海外市场的认可,实现了业务的全球化布局。
ABC公司专注于研发先进的驾驶辅助系统。为了确保产品的合规性和市场竞争力,ABC公司主动寻求E-Mark认证。在认证过程中,公司不断优化产品设计,提高产品性能,成功获得了E-Mark认证。凭借这一认证,ABC公司的产品在欧洲市场得到了广泛应用,公司也因此获得了技术革新的声誉和市场份额的扩大。
随着全球对环保和可持续发展的重视,ELNA也开始关注绿色制造和环保产品。公司积极采用环保材料和清洁能源,减少生产过程中的污染和排放。同时,ELNA还加强了对废旧产品的回收和再利用,推动循环经济的发展。
在数字化转型和智能化升级的趋势下,ELNA开始积极探索新技术和新模式。公司加强了与互联网和人工智能技术的融合,推动产品和服务的智能化升级。同时,ELNA还加强了对大数据和云计算技术的应用,提升生产效率和管理水平。
以上是对ELNA公司在电子行业中的部分发展历程的概述。您可以根据这些故事的开头进一步扩展和完善内容以满足字数要求。
面试时的难题和对策(英文版) 加拿大职业论坛 通用类问题 1. Tell me about you! Keep your answer to one or two minutes; don\'t ramble. Use your res ...… 查看全部问答∨ |
EPS应急电源的设计原则与功能 近年来,国内电网发展迅速,抗风险能力也在不断增强,但与社会经济的快速发展以及用电量快速增长的要求相比,仍有不小差距。如电网建设长期滞后,目前尚处于全国联网的初期阶段;电磁环网问题影响输电能力的充分发挥, ...… 查看全部问答∨ |
请教下各位大虾,本人正学习LCD,遇到汉字取模的问题。 比如汉字“请”字,在书上取模写的为: 0x20,0x22,0xEC,0x00,0x20,0x22,0xAA,0xAA, 0xAA,0xBF,0xAA,0xAA,0xEB,0xA2,0x20,0x00, 0x00,0x00,0x7F,0x20,0x10,0x00,0xFF,0x0A, 0x0A,0x0A,0x4 ...… 查看全部问答∨ |
|
附件是个大程序,,有几个子模块,,如何打开..如果哪个朋友打开了可以截个C51的窗口不??我很多窗口的那种搞法实在不会,,截个图看下… 查看全部问答∨ |
职位:中科院某所工程师 职责:(以下各项优先级从高到低,即你的能力以能胜任前面职责为优) 1 vxworks裁剪 2 BSP PowerPC系列开发 3 串口、网络驱动开发 4 多任务应用编程 5 ...… 查看全部问答∨ |
在vs2005上建立ppc2003工程, 程序中动态导入一个dll 如 LoadLibrary(L"xxx.dll"); 为什么始终无法导入成功 这个dll是在实机下存在的 现在将这个dll放在xp下进行虚拟机中模拟 始终无法成功 路径和名字完全正确,另外loadlibrary其他xp ...… 查看全部问答∨ |
|
进入CE后,点击右下角的Date/Time properties后,选中Automatically adjust clock for daylight saving后,点击Apply后,为什么一点反应都没有啊?在XP上选择同样的时区后,应用夏令时,时间却有改变啊!… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 泰克WiFi预一致性测量方案介绍会 填问卷 赢好礼
- 观看安森美半导体高精度、高能效的电池电量计量IC方案,答题赢好礼!
- 开学季!解锁奇楼去充电,玩转幸运大抽奖~抽不中再抽
- 有奖直播:英飞凌工业半导体在电机驱动行业中的应用 2020年4月21日 上午10:00-11:30 准时开启!
- 有奖直播|TI毫米波雷达在汽车领域的最新应用
- TI DLP知识有奖快问快答排位赛
- 参与e络盟与 TE 传感器的问卷活动,赢50元亚马逊购物券!
- 直播已结束【普源精电2020新品发布会暨行业论坛】
- #micropython大作战#多种参与姿势,大家一起来玩micropython!
- 用 TI 汽车电子方案充充电吧,看你止步不前还是勇往直前!