标题: stm32外部中断无法触发 [打印本页]

作者: wdmcp    时间: 2021-3-19 13:02
标题: stm32外部中断无法触发
      本想用stm32的外部中断来写旋转编码器程序的,但发现外部中断竟然死活不能触发,搞了好几次都没有解决问题,觉得是个很简单的东西,影响心态了。。用的是stm32f103c8t6,原子单片机的例程序改的实验程序,记得之前外部中断测试成功过,不知道现在哪里出了问题。
      麻烦各位高手,看看我这个程序有问题吗,有遗漏或错误吗?(led就是pc13,驱动程序应该没问题,可以亮,但按键不能控制)

exti.c.2.png (66.03 KB, 下载次数: 139)

exti.c.2.png

key.c.png (16.53 KB, 下载次数: 142)

key.c.png

key.h.png (22.69 KB, 下载次数: 150)

key.h.png

main.c.png (22.63 KB, 下载次数: 151)

main.c.png

exti.PNG (4.46 KB, 下载次数: 138)

exti.PNG

IMG_20210319_125509.jpg (858.49 KB, 下载次数: 158)

IMG_20210319_125509.jpg

作者: munuc_w    时间: 2021-3-20 08:38
中断初始化中是:LINE0;中断服务程序中是LINE1,仔细看看!
作者: wdmcp    时间: 2021-3-20 12:48
munuc_w 发表于 2021-3-20 08:38
中断初始化中是:LINE0;中断服务程序中是LINE1,仔细看看!

哦,那个确实是一个错误,改来改去改错了。但是我现在改成了LINE0,还是没有我想要的结果,PC13的灯始终常亮。
作者: wdmcp    时间: 2021-3-21 22:43
真是太菜了,找到问题了。。不是中断没触发,而是程序根本没进while运行起来(看来在while里应加上提示程序正在运行的语句,是一个好习惯)。原因是main函数里没声明delay函数。。造成程序运行不了。真奇怪,keil也没有提示报错,所以好久都没发现。
作者: wdmcp    时间: 2021-3-21 22:46
munuc_w 发表于 2021-3-20 08:38
中断初始化中是:LINE0;中断服务程序中是LINE1,仔细看看!

原因是没初始化delay函数,导致程序根本没运行while()。。真没想到,还是单片机玩的少了。

IMG_20210321_223125.jpg (1.09 MB, 下载次数: 158)

IMG_20210321_223125.jpg





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1