- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
看了一下《STM32 不完全手册》上的内容发现从按键后面的内容基本上都要涉及到中断。所
以决定先把中断搞定。以前使用中断很是混乱基本都是对着示例程序改改实现功能就好了。
但从回过头来看看发现中断还是很复杂的。
这里先把我学习的中断的相关知识梳理一下:
1. 中断是CM3 核自带的。所以中断要在《CM3 权威指南》中阅读。《STM32 中文参考手册》
里介绍的不全。
2. CM3 内核中规定的可编程中断源有240 个,但STM32F103 只使用了前68 个,这68 个
中断源和编号在STM32F10X.H 文件170 行有定义
3. STM32 中断和51 中断不同的地方有:
a) STM32 多了一个中断分组的概念,这个分组操作在程序中建议只操作一次就可以。
中断分组用来决定抢占优先级和子优先级的取值范围。
b) STM32 的每个中断源都有两种优先级,抢占优先级和子优先级。这两个优先级的取
值范围由中断分组决定。抢占优先级用来中断低抢占优先级的程序。子优先级用来
在抢占优先级相同时决定谁先执行。这两个优先级就好比汽车在过收费站,在汽车
过收费站时有两个参数决定你什么时候过。第一你的汽车是什么类型的车,第二你
前面还有多少车。第一个属性就好比抢占优先级。警察的车比普通的车的优先级高
就能插到前面先过收费站。第二个属性好比子优先级。都是普通的小车说明抢占优
先级都一样,谁先过就看你现在排队排的几号。
4. 中断服务函数是根据函数名来决定的,这个函数名是在.s 的启动文件中定义好的。
5. 其他的和51 就没什么差别。初始化,等待触发中断,进中断服务函数,执行完中断函数
清除中断标志,返回继续执行其他程序。
下面就根据外部中断实现一个按键点亮LED
按照以下步骤进行
1. 中断初始化
a) 设置中断分组 SCB-AIRCR
b) 使能外部中断 NVIC-ISER
c) 对外部中断的优先级设置 NVIC-IP
2. 按键初始化
a) 按键时钟使能 RCC-APB2ENR
b) 复用时钟使能 RCC-APB2ENR
c) 按键相关IO 口初始化 GPIOB-CRL
d) 把按键引脚和对应的外部中断线连接 AFIO-EXTICR
e) 外部中断使能 EXTI-IMR
f) 设置触发方式 EXTI-RTSR
3. LED 初始化
4. 编写中断服务函数
第一步 中断初始化
这里先举个例子来理解中断分组和中断源,抢占优先级,子优先级的关系
比如一个公司有68 个人 ,先给这68 个人编了0~68 的编号(表示68 个可编程中断源,
如串口中断,外部中断0 ,外部中断1 等)
现在公司要求每人都要被编个号,这个编号分成两个部分字母部分和数字部分,编号的
大小决定了这个人在公司的地位。并规定编号越小地位越高。但是这个编号的取值范围是根
据公司的规章制度决定的。比如规章制度上规定了字母编号只能在2^3 (2 的3 次方)以内
(即只能是A~H ),数字编号只能是2^1 以内(即0 或者1)。 (表示中断分组,字母是抢
占,数字是子优先级) 又有一个规定在打饭时如果字母大的在打饭但字母小的也来打饭了
则字母大让字母小的打完了自己在继续打饭。如果字母相同的一起来打饭,就看谁的数字编
号小谁就打饭。但是如果字母相同但数字编号大的先打饭,那么后来的编号小的不能插到编
号大的前面打饭。
换句话说就是字母的等级比编号的等级高,字母小的可以插队到字母大的前面。但是相
同字母的不能根据数字编号大小来插队。
例如:现在有几个人编号是这样的
个人编号 工作编号
0 A00
3 A01
5 B01
7 C01
65 B00
1. 比如个人编号为7 号的在打饭,3 号和0 号一起去了,那么7 号要让3 号和0 号插队,
由于3 号数字编
您可能关注的文档
最近下载
- 2025年电子物证初级试卷及答案.doc VIP
- 烟雾病和烟雾综合征诊断与治疗中国专家共识(2024版).pptx VIP
- Q/CR 549.5-2016 铁路工程土工合成材料 第5部分:土工布.PDF VIP
- GB50168-2018 电气装置安装工程 电缆线路施工及验收标准.pdf VIP
- 人行天桥钢箱梁施工方案.doc VIP
- 建筑工程领域AI应用现状与趋势研究报告 -AI in AEC.docx
- 第5講移民实边:明清时期的边疆移民(4课时).ppt VIP
- 新人教版四年级上册道德与法治精编知识点(背诵用).doc
- 冶金企业全要素评估表(人机物环管).docx VIP
- 一种建筑工程管理用安全防护栏.pdf VIP
原创力文档


文档评论(0)