OpenEdv-开源电子网

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

本人自觉写的外部中断程序已经很完美了,可还是进不了外部中断,希望各位大神帮小弟看看,在此感激不尽啊

[复制链接]

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2012-5-11
在线时间
4 小时
发表于 2012-7-18 16:58:36 | 显示全部楼层 |阅读模式

       以下外部中断程序已经做了两天了 ,可还是进不了外部中断,崩溃中......该中断的功能很简单,就是三个按键 分别控制对应的三个灯

/*---------INCLUDE------------*/
#include "stm32f10x.h"
#include <stdio.h>

/*--------LED相关定义------------*/
#define  RCC_LED            RCC_APB2Periph_GPIOE
#define  LED_PORT           GPIOE
#define  DS1                GPIO_Pin_3
#define  DS2                GPIO_Pin_4
#define  DS3                GPIO_Pin_5
#define  DS4                GPIO_Pin_6
#define  LED_ALL                        DS1|DS2|DS3|DS4
/*--------KEY相关定义------------*/
#define  RCC_KEY            RCC_APB2Periph_GPIOE
#define  KEY_PORT           GPIOE

#define  KEY1               GPIO_Pin_8
#define  KEY1_EXTI_LINE        EXTI_Line8
#define  KEY1_PORT_SOURCE               GPIO_PortSourceGPIOE
#define  KEY1_Pin_SOURCE                GPIO_PinSource8
#define  KEY1_IRQn                      EXTI9_5_IRQn

#define  KEY2               GPIO_Pin_9
#define  KEY2_EXTI_LINE        EXTI_Line9
#define  KEY2_PORT_SOURCE               GPIO_PortSourceGPIOE
#define  KEY2_Pin_SOURCE                GPIO_PinSource9
#define  KEY2_IRQn                      EXTI9_5_IRQn

#define  KEY3               GPIO_Pin_10
#define  KEY3_EXTI_LINE        EXTI_Line10
#define  KEY3_PORT_SOURCE               GPIO_PortSourceGPIOE
#define  KEY3_Pin_SOURCE                GPIO_PinSource10
#define  KEY3_IRQn                      EXTI15_10_IRQn
/*-----------Private variables-----------*/
GPIO_InitTypeDef   GPIO_InitStructure;
EXTI_InitTypeDef   EXTI_InitStructure;
NVIC_InitTypeDef   NVIC_InitStructure;
/*-------------定时器相关定义-----------*/
static u8    fac_us=0;
static u16   fac_ms=0;
/*-----------函数声明-------------*/
void  delay_init(u8 SYSCLK);
void  delay_ms(u16 nms);
void delay_us(u32 nus);
void Turn_on_LED_ALL(void);
void Turn_off_LED_ALL(void);
void Led_Turn_on_1(void);
void Led_Turn_on_2(void);
void Led_Turn_on_3(void);
void Led_Turn_on_4(void);
/*---------------初始化函数----------------*/
void LED_Init(void)        //初始化LED
{
 RCC_APB2PeriphClockCmd(RCC_LED,ENABLE);
 GPIO_InitStructure.GPIO_Pin = DS1|DS2|DS3|DS4;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(LED_PORT,&GPIO_InitStructure);
}

void KEY_Init(void)
{
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);
 GPIO_InitStructure.GPIO_Pin = KEY1|KEY2|KEY3;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
 GPIO_Init(KEY_PORT, &GPIO_InitStructure);
}

void KEY_EXTI_Init(void)
{
 EXTI_ClearITPendingBit(EXTI_Line8);
 EXTI_ClearITPendingBit(EXTI_Line9);
 EXTI_ClearITPendingBit(EXTI_Line10);
 GPIO_EXTILineConfig(KEY1_PORT_SOURCE, KEY1_Pin_SOURCE);
 EXTI_InitStructure.EXTI_Line = KEY1_EXTI_LINE;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; 
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);

 GPIO_EXTILineConfig(KEY2_PORT_SOURCE, KEY2_Pin_SOURCE);
 EXTI_InitStructure.EXTI_Line = KEY2_EXTI_LINE;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; 
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);

 GPIO_EXTILineConfig(KEY3_PORT_SOURCE, KEY3_Pin_SOURCE);
 EXTI_InitStructure.EXTI_Line = KEY3_EXTI_LINE;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; 
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);
}

void NVIC_Config(void)
{
 /* Set the Vector Table base address at 0x08000000 */
 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000);
 
 /* Configure the Priority Group to 2 bits */
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
 
 
 /* Enable the EXTI Interrupt */
 NVIC_InitStructure.NVIC_IRQChannel = KEY1_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 
 NVIC_InitStructure.NVIC_IRQChannel = KEY2_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 
 NVIC_InitStructure.NVIC_IRQChannel = KEY3_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure); 
}
/*------------主函数---------------*/
int main(void)
{
 LED_Init();
 delay_init(72);
 Turn_off_LED_ALL();/*关闭所有的LED指示灯*/
 delay_ms(500);
 Led_Turn_on_1();
 delay_ms(500);
 Turn_off_LED_ALL();
 delay_ms(500);
 Led_Turn_on_1();
 delay_ms(500);
 Turn_off_LED_ALL();
 delay_ms(500);
 Led_Turn_on_1();
 delay_ms(500);
 Turn_off_LED_ALL();
 delay_ms(500);

 KEY_Init();
 KEY_EXTI_Init();
 NVIC_Config();
 while(1)    //等待中断
 {
 }
}
/*--------------函数配置--------------*/
void Turn_on_LED_ALL(void)    //打开所有灯
{
 GPIO_SetBits(LED_PORT,LED_ALL);
}

void Turn_off_LED_ALL(void)   //关闭所有灯
{
 GPIO_ResetBits(LED_PORT,LED_ALL); 
}

void Led_Turn_on_1(void)    //打开灯1
{
 /* Turn On LED1 */
    GPIO_SetBits(LED_PORT, DS1);
}

void Led_Turn_on_2(void)    //打开灯2
{
 /* Turn On LED2 */
    GPIO_SetBits(LED_PORT, DS2);
}

void Led_Turn_on_3(void)    //打开灯3
{
 /* Turn On LED3 */
    GPIO_SetBits(LED_PORT, DS3);
}

void Led_Turn_on_4(void)     //打开灯4
{
 /* Turn On LED3 */
    GPIO_SetBits(LED_PORT, DS4);
}
/*-------------延时函数----------------*/
void delay_init(u8 SYSCLK)
{
 SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟  HCLK/8
 fac_us=SYSCLK/8;     
 fac_ms=(u16)fac_us*1000;
}
//延迟毫秒函数
void delay_ms(u16 nms)
{        
 u32 temp;    
 SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)
 SysTick->VAL =0x00;           //清空计数器
 SysTick->CTRL=0x01 ;          //开始倒数 
 do
 {
  temp=SysTick->CTRL;
 }
 while(temp&0x01&&!(temp&(1<<16)));//等待时间到达  
 SysTick->CTRL=0x00;       //关闭计数器
 SysTick->VAL =0X00;       //清空计数器       
}
//延迟微秒函数
void delay_us(u32 nus)
{  
 u32 temp;      
 SysTick->LOAD=nus*fac_us; //时间加载     
 SysTick->VAL=0x00;        //清空计数器
 SysTick->CTRL=0x01 ;      //开始倒数  
 do
 {
  temp=SysTick->CTRL;
 }
 while(temp&0x01&&!(temp&(1<<16)));//等待时间到达  
 SysTick->CTRL=0x00;       //关闭计数器
 SysTick->VAL =0X00;       //清空计数器 
}

 

关于中断响应函数

void EXTI9_5_IRQHandler(void)     //KEY1 KEY2
{
  if(EXTI_GetITStatus(EXTI_Line8) != RESET)
  {
    GPIO_SetBits(GPIOE, GPIO_Pin_4);       

    EXTI_ClearITPendingBit(EXTI_Line8);      
  }
  else
  if(EXTI_GetITStatus(EXTI_Line9) != RESET)
  {
    GPIO_SetBits(GPIOE, GPIO_Pin_5);        

    EXTI_ClearITPendingBit(EXTI_Line9);       
  }
}

void EXTI15_10_IRQHandler(void)      //KEY3
{
  if(EXTI_GetITStatus(EXTI_Line10) != RESET)
  {
    GPIO_SetBits(GPIOE, GPIO_Pin_6);      

    EXTI_ClearITPendingBit(EXTI_Line10);      
  }
}

 

 

 

 

 

 

 

 

 

 

 

 



 

 

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

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2012-7-10
在线时间
0 小时
发表于 2012-7-18 17:55:28 | 显示全部楼层
进不了中断,估计是你的中断配置有问题。我建议你一点点的调试,否则一下子搞这么多,增加问题寻找难度。
千人千般苦,苦苦不相同!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-7-18 18:19:47 | 显示全部楼层
参考我们的例子.
另外,2楼的建议,楼主应该好好采纳.
不要一开始就写一堆的代码,结果最基本的都没实现,浪费时间!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2012-5-11
在线时间
4 小时
 楼主| 发表于 2012-7-18 19:02:58 | 显示全部楼层

原子兄 本人遇见一现象 不知什么原因 望解惑

也是关于这个外部中断的 ,我把程序烧写到片子上后,中断的确没有反应,可我设置了下硬件仿真,如下图所示,片子自动复位,并且外部中断起作用了。我拔下JTAG之后,程序运行还是正常。难道设置硬件仿真那么重要吗??


 

回复 支持 反对

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2012-5-11
在线时间
4 小时
 楼主| 发表于 2012-7-18 19:04:48 | 显示全部楼层
            


回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-7-18 19:11:41 | 显示全部楼层
是不是我们的开发板啊?
如果是的话,要拔了JTAG啊....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2012-5-11
在线时间
4 小时
 楼主| 发表于 2012-7-18 19:20:01 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
是最小系统板
回复 支持 反对

使用道具 举报

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1702
金钱
1702
注册时间
2012-5-10
在线时间
439 小时
发表于 2012-7-18 19:34:45 | 显示全部楼层
我的io口配置为GPIO_Mode_IPD;把我的给你看下,我的可以
void gpio_Init(void)
{
   GPIO_InitTypeDef GPIO_InitStructure;
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF|RCC_APB2Periph_AFIO,ENABLE);

   GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_15;
   GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;
   GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
   GPIO_Init(GPIOF,&GPIO_InitStructure);

}
void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
  
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 5;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 6;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

}
void exti_init(void)
{
 EXTI_InitTypeDef EXTI_InitStructure;
 gpio_Init();
NVIC_Configuration();

 EXTI_ClearFlag(EXTI_Line0);
 EXTI_ClearFlag(EXTI_Line1);
 EXTI_ClearFlag(EXTI_Line2);
 EXTI_ClearFlag(EXTI_Line3);
 EXTI_ClearFlag(EXTI_Line4);
 EXTI_ClearFlag(EXTI_Line5);
 EXTI_ClearFlag(EXTI_Line15);


 GPIO_EXTILineConfig(GPIO_PortSourceGPIOF, GPIO_PinSource0);
 GPIO_EXTILineConfig(GPIO_PortSourceGPIOF, GPIO_PinSource1);
 GPIO_EXTILineConfig(GPIO_PortSourceGPIOF, GPIO_PinSource2);
 GPIO_EXTILineConfig(GPIO_PortSourceGPIOF, GPIO_PinSource3);
 GPIO_EXTILineConfig(GPIO_PortSourceGPIOF, GPIO_PinSource4);
 GPIO_EXTILineConfig(GPIO_PortSourceGPIOF, GPIO_PinSource5);
 GPIO_EXTILineConfig(GPIO_PortSourceGPIOF, GPIO_PinSource15);

 EXTI_InitStructure.EXTI_Line = EXTI_Line0; 
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //设置中断触发方式为上升沿触发
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;                //外部中断使能
     EXTI_Init(&EXTI_InitStructure);

 EXTI_InitStructure.EXTI_Line = EXTI_Line1; 
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //设置中断触发方式为上升沿触发
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;                //外部中断使能
     EXTI_Init(&EXTI_InitStructure);

 EXTI_InitStructure.EXTI_Line = EXTI_Line2; 
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //设置中断触发方式为上升沿触发
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;                //外部中断使能
     EXTI_Init(&EXTI_InitStructure);

 EXTI_InitStructure.EXTI_Line = EXTI_Line3; 
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //设置中断触发方式为上升沿触发
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;                //外部中断使能
     EXTI_Init(&EXTI_InitStructure);

 EXTI_InitStructure.EXTI_Line = EXTI_Line4; 
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //设置中断触发方式为上升沿触发
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;                //外部中断使能
     EXTI_Init(&EXTI_InitStructure);

 EXTI_InitStructure.EXTI_Line = EXTI_Line5; 
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //设置中断触发方式为上升沿触发
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;                //外部中断使能
     EXTI_Init(&EXTI_InitStructure);

 EXTI_InitStructure.EXTI_Line = EXTI_Line15; 
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //设置中断触发方式为上升沿触发
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;                //外部中断使能
     EXTI_Init(&EXTI_InitStructure);
}
如有技术问题,微信扫头像交流,STM32,JAVA,服务器
回复 支持 反对

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2012-5-11
在线时间
4 小时
 楼主| 发表于 2012-7-18 20:17:52 | 显示全部楼层
回复【8楼】xsx127:
---------------------------------
谢谢 我跟你的除了触发沿选择不一样 其他基本都一样。你知道为什么硬件仿真设置之后才能产生中断吗?
回复 支持 反对

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2012-5-11
在线时间
4 小时
 楼主| 发表于 2012-7-19 11:17:08 | 显示全部楼层
有遇到这种情况的大侠吗
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2012-9-7
在线时间
20 小时
发表于 2013-7-20 10:07:18 | 显示全部楼层
回复【10楼】wangruixu1121:
---------------------------------
楼主,一年过去了你找到原因了吗?为什么需要硬件仿真设置之后才能产生中断?
回复 支持 反对

使用道具 举报

75

主题

458

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1635
金钱
1635
注册时间
2012-8-28
在线时间
71 小时
发表于 2013-7-20 11:29:30 | 显示全部楼层
中断触发的电平我怎么没找到?总中断使能了没
QQ750273008有好的资料记得发给我哦。。。
回复 支持 反对

使用道具 举报

5

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-3-9
在线时间
1 小时
发表于 2015-3-10 16:11:50 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子老师 ,我是用你的程序来进行整合修改的,可是现在遇到了一个问题,我是配置三个按键外部中断的,如果主程序里面有代码执行的话就只有一个按键可以中断,可如果只执行中断完后想要的功能话,想怎么中断就行。就是假设
while(1)
{
   if(a==1)
    {lcd显示一个数}
}(a为按下中断后给它赋值1)
while(1)
{
  adc采集与显示
}(如果有程序执行就进去一次中断,还是三个按键中断只有一个可以用)
求教!!!
学无止境
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-10 22:50:12 | 显示全部楼层
回复【13楼】1343114655@qq.com:
---------------------------------
不懂你的意思.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 08:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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