找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3130|回复: 4
收起左侧

stm32外部中断无法触发

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

exti.c.2.png
key.c.png
key.h.png
main.c.png
exti.PNG
IMG_20210319_125509.jpg
回复

使用道具 举报

ID:752974 发表于 2021-3-20 08:38 | 显示全部楼层
中断初始化中是:LINE0;中断服务程序中是LINE1,仔细看看!
回复

使用道具 举报

ID:725922 发表于 2021-3-20 12:48 | 显示全部楼层
munuc_w 发表于 2021-3-20 08:38
中断初始化中是:LINE0;中断服务程序中是LINE1,仔细看看!

哦,那个确实是一个错误,改来改去改错了。但是我现在改成了LINE0,还是没有我想要的结果,PC13的灯始终常亮。
回复

使用道具 举报

ID:725922 发表于 2021-3-21 22:43 来自手机 | 显示全部楼层
真是太菜了,找到问题了。。不是中断没触发,而是程序根本没进while运行起来(看来在while里应加上提示程序正在运行的语句,是一个好习惯)。原因是main函数里没声明delay函数。。造成程序运行不了。真奇怪,keil也没有提示报错,所以好久都没发现。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:725922 发表于 2021-3-21 22:46 来自手机 | 显示全部楼层
munuc_w 发表于 2021-3-20 08:38
中断初始化中是:LINE0;中断服务程序中是LINE1,仔细看看!

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

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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