完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
由于今天一直STM8S 的程序,关于STM8s的中断一直是处于只知道用,却不理解中断流程,以及关于中断的基本概念。本篇文档主要说明中断的基本概念、机制、流程、处理方法等。
一些问题: 1.什么叫软件中断、什么是硬件中断?对于中断向量表后的GPIO口,定时器,I2C是什么软件还是硬件中断? 2.什么是软件优先级?什么是硬件优先级? 3.STM8S能改变中断的优先级?怎么改变?比如:说PB比PA口的优先级高,但是我怎么设置寄存器改变其使PA口的中断优先级比PB高。 4.在软件优先级相同的情况下,硬件优先级最高的中断响应?在硬件优先级相同的情况下,软件优先级最高的中断响应?这两句话是什么意思? 牛人的解答: 1、软件中断是由程序产生的中断,比如定时器,硬件中断是由硬件接口产生的,比如串口中断。 2、中断优先级是一样的,通过寄存器配置的。没有你说的软件和硬件优先级 3、中断优先级通过中断优先级寄存器配置,不同的芯片级别不一样,有的是0为最高级,有的是7为最高级。 4、中断优先级相同的情况下,先执行向量列表靠前的中断。 STM8 常用中断指令: 1、开中断:
STM8 中断控制系统处理2种类型的中断源: 1、不可屏蔽的中断:RESET , TLI 和 TRAP 2、可屏蔽中断: 外部中断 和 内嵌的外设中断。 STM8 的中断处理流程图: 中断处理流程图 注:流程图中说明的点 PENDING interrupt :中断挂起 fetch next instruction : 获取下一条指令 execute instruction : 执行指令 TRAP(不可屏蔽的软件中断) 路线1:中断被响应后,正常操作被悬起,(PC,X,Y,A和CC)被压桟,根据ITC_SPRx寄存器,置CC寄存器的 l1 和 l0 。 中断服务子程序必须以IRET 指令结束,该指令把堆栈中的保存的寄存器内容出桟,同时由于运行IRET指令,位l1和l0被重新恢复,程序也恢复运行。 路线2:中断程序执行完成后,恢复堆栈内容。 路线3:当前中断服务程序正在执行,另外一个中断等级低的中断等待处理,继续被挂起,等当前中断执行完,再响应低等级中断响应。 路线4:当前中断服务程序正在执行,另外一个中断等级高的中断等待处理,当前中断程序被挂起,(PC,X,Y,A和CC)被压桟,执行等级高的中断程序。等等级高中断执行完,再响应当前中断服务程序。 路线5:当前中断服务程序正在执行,不可屏蔽的软件中断产生,直接REST。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1754 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1053 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1667 浏览 2 评论
1930浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
715浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
562浏览 3评论
587浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
544浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 09:20 , Processed in 0.819403 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号