STM8教程-第十章 STM8S207 外部输入中断及其应用实例
更新时间:2024-03-26 20:18:01 阅读量: 综合文库 文档下载
- stm8单片机教程推荐度:
- 相关推荐
第十章 STM8S207 外部输入中断及其应用实例
这一章内容和第九章内容有很大关联,前面章节已经对 TLI 外部不可屏蔽中断有过详细说明,所以这一章相对来说比较简单
10.1 STM8S207 外部可屏蔽中断
这一节,我们将向大家介绍如何使用 STM8 的外部输入中断。通过前面的学习,我们掌握了 STM8 的 IO 口操作以及设计到的串口中断。这节我们将介绍作为外部中断输入口,STM8 需要做的一些设置
10.2 STM8 外部中断简介
STM8 的 IO 口在之前已经有详细的介绍,而中断也在串口章节中做过介绍。我们这节是将这两者结合起来,实现外部中断输入。
STM8 的大部分 IO 口可以作为中断输入,这点很好用。具体的 IO 口有 PA,PB,PC,PD,PE
要把 IO 口作为外部中断输入,有以下步骤:
1)初始化 IO 口作为输入中断,其中有悬浮和上拉,设置 CR1 和 CR2 寄存器 2 ) 设 置 中 断 产 生 条 件 上 升 沿 还 是 下 降 沿 或 者 其 它 类 型 , 设 置EXTI_CR1,EXTI_CR2
3)在 main 函数中开全局中断 asm(\ 4)编写中断服务程序
注意的是,外部中断是每个端口分配一个中断向量号,例如 PA 口只分配了 3 这个中断向量号,也就是说 8 个 IO 口共用一个中断向量号,我们可以通过 IDR 寄存器读出对应的 IO 口引脚值来判断到底是那个产生的中断,这在初始化了多个IO 口的必须使用的。 更为要注意的是 PD7 是一个特别的外部中断输入,看数据手册可以知道 PD7 后缀有 TLI,这个是拥有独立的中断向量号,为 0
下面我们将逐步讲解与外部中断有关的寄存器 1)CR1,CR2
这两个寄存器相信大家都很熟悉了,我们前面与 IO 口有关的操作都要到这两个寄存器,之前我们设置的一般都是推挽式输出以及上拉式输入 在这里我们设置成中断上拉输入,因为我们的硬件上没有外接上拉,需要内部上拉,设置对应位的寄存器值是 CR1 = 1 以及 CR2 = 0 2)EXTI_CR1
我们使用的是 D 口,所以只需要设置与 D 口有关的位,EXTI_CR1 中的第 6、7 位是设置 PD 口的中断方式。如下图所示:
我们的实验是设置为仅下降沿触发,所以在我们只需要设置为 EXTI_CR1 = 0x80就可以了。
实验硬件连接:
下面是软件代码的编写 #include \
#define LED1_FLASH PD_ODR_ODR0 = !PD_ODR_ODR0 #define LED2_FLASH PD_ODR_ODR1 = !PD_ODR_ODR1 #define LED3_FLASH PD_ODR_ODR2 = !PD_ODR_ODR2 #define LED4_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 void GPIO_init(void) {
PD_DDR = 0x0F; // 配置PD端口的方向寄存器
PD_CR1 = 0xFF; // 设置推挽输出,以及中断上拉输入 PD_CR2 = 0xF0; // 使能PD5、6、7外部中断 PD_ODR = 0xFF; }
void EXTI_init(void) {
EXTI_CR1 = 0x80; // PD口下降沿触发中断 } {
asm(\关全局中断 GPIO_init(); EXTI_init();
asm(\开全局中断 }
void main( void ) {
init_devices();
// 主循环里没有程序需要执行 while(1); }
#pragma vector=0x02 // 这里很关键!看说明。 __interrupt void EXTI_PD7_TLI(void) {
LED4_FLASH; }
#pragma vector=0x08
__interrupt void EXTI_PD(void) {
if(PD_IDR_IDR5 == 0) //key1按下 {
if(PD_IDR_IDR6 == 0) //key1 key2同时按下 LED3_FLASH; else
LED1_FLASH; } else
LED2_FLASH; }
编译下载后,通过不同的按键可以实现 LED 的开关,不过干扰很大。这是因为速度很快而且没有延时滤波而产生的,我们的实验只是说明外部中断的使用
正在阅读:
STM8教程-第十章 STM8S207 外部输入中断及其应用实例03-26
电路出故障了说课稿 - 图文01-18
现代汉语中英语外来语的衍变07-19
贺展未西华大学毕业设计说明书2015.06.26 - 图文06-20
小学生好书推荐演讲稿11-17
沥青碎石柔性基层ATB-25施工方案01-17
奇迹的代价02-12
2013-2018年中国齿轮泵行业市场竞争格局与投资前景研究报告04-27
宅基地申请书如何写03-31
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 十章
- 中断
- 外部
- 实例
- STM8S207
- 输入
- 及其
- 应用
- 教程
- STM8
- A320理论五百题修改版
- 《找不到快乐的波斯猫》
- 对证监会上市公司再融资项目达到重大资产重组标准时相关监管要求
- 2019-2020年七年级地理上册 1.3地球的自转(第2课时)教案(新版
- 四川导游面试一百问
- 发展独立思考和独立判断的一般能力,应当始终被放在首位
- 《劳动关系管理实训》习题要点
- 当代国外教育管理体制改革主题词研究述评
- 2019财政学考研就业方向及就业前景 - 图文
- 环评上岗证考试 - 244期回忆题(标记了部分答案和考点)
- F1签证(美国学生签证)填写DS-160表格步骤教程及中文模板(图解
- 宁波市鄞州宏忠金属制品有限公司年产58万只压铸件项目审批
- 员工行为安全管理课后测试
- 高中生物必修3、选修3试题
- 2014年学院附中第二次模拟考试英语试卷 - 图文
- 2017 年盐城市中考化学试题双向细目表
- 武大金融经济学重点总结(2014 潘敏老师)
- 福建省漳州市云霄县将军山中学2015-2016学年上学期七年级(上)
- 高中物理新课标教学设计案例(传感器)
- 建筑工程实务案例历年真题精讲(04-07) - 图文