找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1711|回复: 3
打印 上一主题 下一主题
收起左侧

STM32F10系列中断与程序先后问题

[复制链接]
回帖奖励 20 黑币 回复本帖可获得 20 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:532055 发表于 2020-3-15 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
类似C51定时器中断是按计数值来确定中断的节点,而STM32F10X系列中比如硬件I2C(主模式)。前面几个基本流程是检测BUSY,总线不忙发送起始位,发送成功SB置位,然后读SR1状态寄存器,再然后写入DR寄存器发送7位地址。在这儿想不明白的是紧挨着的发送起始位语句与读SR1状态寄存器之间中断与执行下一个语句哪个会先到来,如何判断??
如果中断比读SR1滞后程序不就乱了么。。咋想都想不明白。当然可以通过while(SB=0)来确定,但只想问这个中断与执行程序如果判断

谁先谁后。还是说中断肯定发生在执行下一条语句前???
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:699194 发表于 2020-3-16 00:51 | 只看该作者
这里有很多中断程序的例程,自己可以去学习

STM32入门篇之通用定时器彻底研究.7z

244.39 KB, 下载次数: 12

回复

使用道具 举报

板凳
ID:532055 发表于 2020-3-16 21:11 | 只看该作者
我叫小大打 发表于 2020-3-16 00:51
这里有很多中断程序的例程,自己可以去学习

首先感谢无私共享资料。小弟愚钝只知道定时器捕获,输出PWM, 强制输出,输出所需波形等几个功能,没看出跟我的提问有何关联。。
回复

使用道具 举报

地板
ID:389856 发表于 2020-3-18 17:41 | 只看该作者
首先中断称之为中断,是要打断你现在要做的事,满足中断条件(比如收到数据或者定时器到时间)就可以进入中断。进入中断的时候,会把当前程序运行的地址,状态等存入寄存器,执行完中断再读取出来继续执行。所以并不会出现程序乱的现象。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表