OpenEdv-开源电子网

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

独立按键实验(用外部中断控制的)

[复制链接]

5

主题

7

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-11-14
在线时间
0 小时
发表于 2013-11-28 18:24:14 | 显示全部楼层 |阅读模式
#include<stm32f10x.h>
void GPIO_Configuration(void);
void RCC_Configuration(void);
void NVIC_Configuration(void);
static LED_Delay(uint32_t nCount);
void EXTI_Configuration(void);
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
NVIC_Configuration();
    EXTI_Configuration();
while(1)
{
;
}


}

void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOE,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
}
void RCC_Configuration(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
}
void EXTI_Configuration(void)
{
EXTI_InitTypeDef EXTI_InitStructure;

GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource6);
EXTI_InitStructure.EXTI_Line = EXTI_Line6;
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_Configuration(void)
 {
  NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn; //irqn
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
 
 }

 void EXTI9_5_IRQHandler(void)
 {
  if(EXTI_GetITStatus(EXTI_Line6)==SET)
{
GPIO_WriteBit(GPIOE,GPIO_Pin_2,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_2)));

}
 }

按键按下后不灭,但是稍微变暗,为什么啊?前面的配置估计没啥为题,可能是中断处理函数有问题。另外当写EXTI_ClearITpendingBit(EXTI_Line6);时会出现这种错误:.axf: Error: L6218E: Undefined symbol EXTI_ClearITpendingBit (referred from main.o).


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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-28 23:10:01 | 显示全部楼层
回复【楼主位】赵赶驴:
---------------------------------
参考下我们战舰板的例子吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 13:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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