中级会员
 
- 积分
- 309
- 金钱
- 309
- 注册时间
- 2016-5-20
- 在线时间
- 45 小时
|
1金钱
//key.h头文件
#include "stm32f10x.h"
#ifndef __KEY_H
#define __KEY_H
#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5 );
void KEY_Init(void);
#endif
//key.c文件
#include "stm32f10x.h"
#include "key.h"
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
GPIO_Init(GPIOE,&GPIO_InitStructure);
}
//led.h头文件
#include "stm32f10x.h"
#ifndef __LED_H
#define __LED_H
void LED_Init(void);
#endif
//led.c文件
#include "stm32f10x.h"
#include "led.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOE,&GPIO_InitStructure);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
}
//extix.h头文件
#include "stm32f10x.h"
#ifndef __EXTIX_H
#define __EXTIX_H
void EXTIX_Init(void);
#endif
//extix.c文件
#include "stm32f10x.h"
#include "extix.h"
#include "delay.h"
#include "key.h"
#include "led.h"
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
KEY_Init();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource4); //¸′óÃê±Öó
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; //ÖD¶Ï
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling; //ϽμÑØ
EXTI_InitStructure.EXTI_Line=EXTI_Line4; //ÖD¶ÏÏß
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_Init(&EXTI_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel=EXTI4_IRQn; //Ö¸¶¨í¨μàÎaí¨μà4
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; //ÇàÕ¼óÅÏè¼¶2
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1; //′óóÅÏè¼¶1
NVIC_Init(&NVIC_InitStructure);
}
void EXTI4_IRQHandler(void)
{
delay_ms(100);
if(KEY0==0)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
delay_ms(100);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
delay_ms(100);
}
EXTI_ClearITPendingBit(EXTI_Line4 );
}
#include "stm32f10x.h"
#include "led.h"
#include "key.h"
#include "extix.h"
#include "delay.h"
//main()主函数
int main(void)
{
LED_Init();
KEY_Init();
EXTIX_Init();
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2 ); //ÖD¶ÏóÅÏè¼¶·Ö×é
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
delay_ms(100);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
delay_ms(100);
}
}
//编译后的结果
Build target 'WLSTM32GONGCHENGMOBAN'
compiling extix.c...
..\My_Project\EXTIX\extix.c(36): error: #18: expected a ")"
if(KEY0==0)
..\My_Project\EXTIX\extix.c: 0 warnings, 1 error
"..\OBJ\WLSTM32GONGCHENGMOBAN.axf" - 1 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:01
|
最佳答案
查看完整内容[请看2#楼]
楼主,你定义中#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5 ); KEY0是带分号“;”的,你去掉定义KEY0中的分号“;”应该就没问题了,或者你不定义KEY0,直接if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5 ) == 0)
|