中断影响了IO输出,求助

2019-07-21 01:22发布

main函数中有下面两句,这样子PE1灯会很暗很暗,如果把中断入口放置点灯后面,则灯亮正常。
中断用了PF1与PF2,这是怎么回事啊?
EXTIX_Init();   //中断入口
PEout(1)=0; //点灯


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
FrogKing
1楼-- · 2019-07-21 01:37
我是菜鸟啊,连51都没搞过,因为公司用的这个U,直接学习这个的。不过这个问题后来好了,也不知为什么
#include "lyd.h"

//外部中断9-5服务程序
void EXTI9_5_IRQHandler(void)
{
delay_ms(20); //消抖
if(PGin(7)==1)  
{
printf("IF11有输入: "); 
PBout(15)=!PBout(15);
}
EXTI_ClearITPendingBit(EXTI_Line7); 
}


//set G7-F11上升沿触发
void EXTIX_Init(void)
{
NVIC_InitTypeDef   NVIC_InitStructure;
EXTI_InitTypeDef   EXTI_InitStructure;

// KEY_Init(); //按键对应的IO口初始化
 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟

 
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOG, EXTI_PinSource7);  //G7-F11


  /* 配置EXTI_Line0 */
  EXTI_InitStructure.EXTI_Line = EXTI_Line7;//LINE0
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发 
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE0
  EXTI_Init(&EXTI_InitStructure);//配置

/* cfg IRQ */
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;//外部中断0
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;//抢占优先级0
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级2
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道
  NVIC_Init(&NVIC_InitStructure);//配置
 
}


止天
2楼-- · 2019-07-21 04:48
好奇葩。。。。。。。
键盘侠
3楼-- · 2019-07-21 07:05
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-21 10:37
代码不全,无法分析.
目测楼主是不是又main函数没有死循环??

最近论坛这种奇葩问题越来越多...
负西弱
5楼-- · 2019-07-21 11:49
根据经验,一般这个问题都是硬件或者软件某个地方有问题造成的~~感觉自己说了好像跟没说一样

一周热门 更多>