STM8S的中断由中断控制器(ITC)控制。STM8所有IO都支持中断,分为PA~PE 5个组,每组IO对应一个中断服务函数(也就是每组IO只有一个向量)。STM8没有专门的中断状态寄存器,所以只能通过刚进入中断就读取IDR来判断,不过在某些情况下,此种方法就不好用了,所以在设计的时候就要考虑清楚,是不是会冲突.最好把有冲突的中断放到不同的组。

STM8的外部中断采用软件优先级+硬件优先级的控制方法,来控制优先级分组.软件优先级优先于硬件优先级。硬件优先级由向量号确定,向量号越小,优先级越高如下面图中断映射,中断向量表。

STM8软件优先级设置可以分为4个等级(0~3),实际上可设置的就三个等级:1~3。优先级顺序:0<1<2<3,3的优先级最高,高优先级的中断可以打断低优先级的中断
多个中断同时发生:在软件优先级相同的情况下,由硬件优先级决定谁先响应.但是硬件优先级不可打断。也就是相同软件优先级的中断,硬件优先级低的中断在执行了...此时来一个硬件优先级高的中断是不可以打断低优先级的中断的。STM8还有个TLI外部中断,这个优先级可以打断软件优先级为3的中断,TLI的优先级不可设置.(基本就是最高级别了,除了RESET)。

总结:同时中断看硬件优先级(向量表)
嵌套中断的时候,应该看软件优先级。(3是最高级)

 
注意:
设置优先级之前必须关闭中断,否则会导致hard fault。
疑惑:
  • reference manual中有如下描述,MAIN, IT4, IT3, IT2, IT1, IT0, TRAP/TLI (same priority), and RESET但是不知道IT4等代表什么含义

最新文章

  1. 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~
  2. vue2.0---模板语法
  3. dragsort html拖拽排序
  4. 修改httpd默认端口号
  5. C#编程总结(三)线程同步
  6. JSF session的用法
  7. Epub2基础知识介绍
  8. Eclipse中添加android sdk javadoc和source
  9. Nginx的事件处理机制
  10. linux内核--内存管理(二)
  11. 出现Deprecated: Function ereg_replace() is deprecated in 的原因及解决方法
  12. .htaccess 保护文件夹
  13. PostgreSQL9.6.2的WINDOWS下安装
  14. Nginx 过滤sub模块
  15. 【leetcode】557. Reverse Words in a String III
  16. Centos7.3_x86_64通过systemctl控制tomcat8.0.46启动和停止
  17. zzw原创_非root用户启动apache的问题解决(非root用户启动apache的1024以下端口)
  18. 控件_DatePicker
  19. 学习4__STM32--中断
  20. js合并.css合并工具

热门文章

  1. SQL学习——基础语句(1)
  2. 如何使用pgpool failover_stream.sh自己控制选择指定的master节点
  3. spring mvc 项目 相关配置文件小结
  4. input输入框只允许输入数字
  5. idea的项目中output框出现乱码
  6. 阿里云大学Linux学习路线图(学+测)重磅上线!
  7. Pyhton学习——Day23
  8. css——overflow
  9. BZOJ 5020 [THUWC2017]Drown in the math ocean (LCT+求导)
  10. shell试题