OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11779|回复: 24

外部中断实验!!!

[复制链接]

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
发表于 2017-6-12 09:58:41 | 显示全部楼层 |阅读模式
1金钱
外部中断实验中,程序中断之后是怎么执行的,中断的时候主程序不应该停止吗,然后去执行中断服务函数中的代码?
求大神讲解,不太明白,就算我一直在按按键,串口也一直发送OK....求讲解谢谢

最佳答案

查看完整内容[请看2#楼]

有, 刚才我重新调了一下 终于懂了,我把主函数中的LED,也放到了中断函数中,结果发生了变化,懂了 ,但是我觉得为什么中断函数最后我设置得delay_ms(5000),我觉得而没有5秒然后串口就开始发送数据呢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 09:58:42 | 显示全部楼层
执迷 发表于 2017-6-12 15:52
就是你按一下按键,,隔10几秒再按一下按键,,LED1有没有一亮一灭

有, 刚才我重新调了一下 终于懂了,我把主函数中的LED,也放到了中断函数中,结果发生了变化,懂了 ,但是我觉得为什么中断函数最后我设置得delay_ms(5000),我觉得而没有5秒然后串口就开始发送数据呢
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 10:06:51 | 显示全部楼层
而且刚才我试了一个,把LED加在了while里,结果按键的时候也是一直亮,这不是说明程序一直在执行吗,哪来的中断?
回复

使用道具 举报

13

主题

175

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2016-4-30
在线时间
141 小时
发表于 2017-6-12 10:25:03 | 显示全部楼层
中断完又回去了,,你用眼睛能看的到的
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-6-12
在线时间
3 小时
发表于 2017-6-12 11:04:39 | 显示全部楼层
中断执行很快的 基本感觉不到 你可以试着在中断中加个延时几s的函数看你串口啥的还在工作不。
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 12:25:14 | 显示全部楼层
看完楼上的 我就试了下 ,在中断处理函数中加了10秒的延时 ,这意思意思不就应该是中断处理函数至少执行了10秒嘛,也就是中断了10秒,但为什么按下按键以后灯和串口还是没变化啊求大神讲解,最好有程序讲解  拜托了
QQ图片20170612121601.png
QQ图片20170612121620.png
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 12:25:33 | 显示全部楼层
qqmt 发表于 2017-6-12 11:04
中断执行很快的 基本感觉不到 你可以试着在中断中加个延时几s的函数看你串口啥的还在工作不。

麻烦楼主看下我发的图片 谢了
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 12:26:16 | 显示全部楼层
执迷 发表于 2017-6-12 10:25
中断完又回去了,,你用眼睛能看的到的

麻烦楼主看下我发的图片 还是不明白 谢了 求解答
回复

使用道具 举报

13

主题

175

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2016-4-30
在线时间
141 小时
发表于 2017-6-12 13:35:31 | 显示全部楼层
设个断点看有没有进中断,,就是LED1状态有没有变
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 15:10:51 | 显示全部楼层
执迷 发表于 2017-6-12 13:35
设个断点看有没有进中断,,就是LED1状态有没有变

什么意思。。
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-6-12
在线时间
3 小时
发表于 2017-6-12 15:18:28 | 显示全部楼层
stm32f103ZE 发表于 2017-6-12 12:25
麻烦楼主看下我发的图片 谢了

能确认下程序进中断了不 发下中断配置吧
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2017-3-22
在线时间
21 小时
发表于 2017-6-12 15:22:40 | 显示全部楼层
这应该是没进中断
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 15:41:47 | 显示全部楼层
NVIC EXTI
QQ图片20170612121620.png
QQ图片20170612153530.png
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 15:42:04 | 显示全部楼层
熊猫CR 发表于 2017-6-12 15:22
这应该是没进中断

麻烦了
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 15:42:32 | 显示全部楼层
qqmt 发表于 2017-6-12 15:18
能确认下程序进中断了不 发下中断配置吧

好的  图片发了,
回复

使用道具 举报

13

主题

175

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2016-4-30
在线时间
141 小时
发表于 2017-6-12 15:52:15 | 显示全部楼层

就是你按一下按键,,隔10几秒再按一下按键,,LED1有没有一亮一灭
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 16:01:53 | 显示全部楼层
小弟谢谢大佬们的耐心
回复

使用道具 举报

13

主题

175

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2016-4-30
在线时间
141 小时
发表于 2017-6-12 18:09:12 | 显示全部楼层
stm32f103ZE 发表于 2017-6-12 16:01
有, 刚才我重新调了一下 终于懂了,我把主函数中的LED,也放到了中断函数中,结果发生了变化,懂了 ,但 ...

你有没有测过你的延时是不是准确的
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 18:42:23 | 显示全部楼层
执迷 发表于 2017-6-12 18:09
你有没有测过你的延时是不是准确的

没有,新手不太了解 尴尬
回复

使用道具 举报

13

主题

175

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2016-4-30
在线时间
141 小时
发表于 2017-6-12 18:45:56 | 显示全部楼层
stm32f103ZE 发表于 2017-6-12 18:42
没有,新手不太了解 尴尬

那不就好了,,还有最好要学会仿真调试,,一步一步跟踪程序,,看程序跑的是不是和你想的一样
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 18:47:38 | 显示全部楼层
执迷 发表于 2017-6-12 18:45
那不就好了,,还有最好要学会仿真调试,,一步一步跟踪程序,,看程序跑的是不是和你想的一样

嗯嗯,好的 了阶了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-6-12 19:42:05 | 显示全部楼层
stm32f103ZE 发表于 2017-6-12 16:01
有, 刚才我重新调了一下 终于懂了,我把主函数中的LED,也放到了中断函数中,结果发生了变化,懂了 ,但 ...

不要在中断里面长时间延时。
如果是中断里面调用了延时函数,会扰乱MAIN函数的delay一次。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-6-8
在线时间
46 小时
 楼主| 发表于 2017-6-12 20:47:33 | 显示全部楼层
正点原子 发表于 2017-6-12 19:42
不要在中断里面长时间延时。
如果是中断里面调用了延时函数,会扰乱MAIN函数的delay一次。

嗯嗯 谢谢
回复

使用道具 举报

7

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
620
金钱
620
注册时间
2016-10-20
在线时间
74 小时
发表于 2017-6-12 20:51:08 | 显示全部楼层
正点原子 发表于 2017-6-12 19:42
不要在中断里面长时间延时。
如果是中断里面调用了延时函数,会扰乱MAIN函数的delay一次。

请问  中断里的延时函数  最多延时多长时间呢??
另外,如果用软件延时(for),也是和delay一样的影响主函数里的delay吗?
回复

使用道具 举报

14

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2017-3-31
在线时间
118 小时
发表于 2017-6-13 17:44:33 | 显示全部楼层
创世神 发表于 2017-6-12 20:51
请问  中断里的延时函数  最多延时多长时间呢??
另外,如果用软件延时(for),也是和delay一样的影响 ...

不要在中断里延时,甚至不要在中断里做过多的处理,进中断设置一个标志位置1,然后在主程序中判断标志位进行处理。中断里延时有的时候不只会影响delay,甚至整个程序的逻辑都会出问题。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-18 15:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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