OpenEdv-开源电子网

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

5V信号 接外部中断 无法清除中断标志

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2012-3-9
在线时间
0 小时
发表于 2012-3-15 21:41:26 | 显示全部楼层 |阅读模式

          今天做图像采集  由于摄像头的行场中断信号是5V   我选择  兼容5V的io口作为外部中断输入,3个中断优先级不通

调试时发现只进优先级最高的中断,另两个中断根本不会进入,大家有遇到这种情况吗

以前貌似听说说过  电平没匹配的话  清不掉中断标志  是真的吗   来有经验的大侠啊

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-3-15 23:32:31 | 显示全部楼层
回复【楼主位】草水唐:
---------------------------------
是不是优先级最高的中断一直在发生?
或者你其他两个中断设置有误,可以考虑把最高优先级的中断屏蔽测试下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2012-3-9
在线时间
0 小时
 楼主| 发表于 2012-3-16 09:54:10 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
EXTI_InitTypeDef_t EXTI_PD2 = {EXTI_Line2, EXTI_Mode_Interrupt, EXTI_Trigger_Rising, ENABLE};
EXTI_InitTypeDef_t EXTI_PC6 = {EXTI_Line6, EXTI_Mode_Interrupt, EXTI_Trigger_Rising, ENABLE};
EXTI_InitTypeDef_t EXTI_PB10 = {EXTI_Line10, EXTI_Mode_Interrupt, EXTI_Trigger_Falling, ENABLE};

NVIC_InitTypeDef_t EXTI2_IRQn_Config = {EXTI2_IRQn, reemptionPriority_1, SubPriority_1, ENABLE};
NVIC_InitTypeDef_t EXTI9_5_IRQn_Config = {EXTI9_5_IRQn, reemptionPriority_1, SubPriority_0, ENABLE};
NVIC_InitTypeDef_t EXTI15_10_IRQn_Config = {EXTI15_10_IRQn, reemptionPriority_0, SubPriority_0, ENABLE};

APB2PeripheralClock_Enable(APB2PeripheralClock_GPIOB);
APB2PeripheralClock_Enable(APB2PeripheralClock_GPIOC);
APB2PeripheralClock_Enable(APB2PeripheralClock_GPIOD);
APB2PeripheralClock_Enable(APB2PeripheralClock_AFIO);

//
GPIOB->CRL = 0x88888888;
GPIOB->ODR &= 0xFF00;

//
GPIOC->CRL &= 0x00FFFFFF;
GPIOC->CRL |= 0x88000000;

MAL_GPIO_Mode_Set(GPIO_D, GPIO_Mode_IN_Pull, 2);
MAL_GPIO_Mode_Set(GPIO_B, GPIO_Mode_IN_Pull, 10);

// GPIOC->ODR &= 0x3FFF;

MAL_EXTI_Init(&EXTI_PD2);
MAL_EXTI_Init(&EXTI_PC6);
MAL_EXTI_Init(&EXTI_PB10);

BIT_CLR(EXTI->IMR, EXTI_Line2);
BIT_CLR(EXTI->IMR, EXTI_Line6);

AFIO->EXTICR[0] |= ((uint16)GPIO_D<<8);
AFIO->EXTICR[1] |= ((uint16)GPIO_C<<8);
AFIO->EXTICR[2] |= ((uint16)GPIO_B<<8);

NVIC_Init(&EXTI2_IRQn_Config);
NVIC_Init(&EXTI9_5_IRQn_Config);
NVIC_Init(&EXTI15_10_IRQn_Config);

优先级设置的是2组。中断初始化的应该不会有问题,把优先级调整后时钟是优先级最高的中断在跑。
我打算加个电平转换试试。不过中断用的IO口全部是兼容5V的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-3-16 12:34:57 | 显示全部楼层
回复【3楼】草水唐:
---------------------------------
参考下我们的中断实验,里面用了3个外部中断,都OK的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 04:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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