STM32F207的中断程序问题
编写了一个中断程序,编译没有问题,但是不知道为什么烧写到开发板上没有实验效果,请各位大侠帮我看看。。这个是主程序
int main(void)
{
LED_CONTROL_GPIO_Config();
EXTI_key_config();
while (1)
{
}
}
下面配置文件中的程序
希望用PF10的按键按下时让PF6外接的LED灯亮
#define ModeSwitch_Port GPIOF
#define ModeSwitch_Pin GPIO_Pin_10
#define ModeSwitch_RCC_AHBPeriph RCC_AHB1Periph_GPIOF
<blockquote>#define LED1_Port<span class="Apple-tab-span" style="white-space:pre"> </span>GPIOF下面是中断程序
void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line10)!=RESET)
{
GPIO_SetBits(GPIOF , GPIO_Pin_6);
EXTI_ClearFlag(EXTI_Line10);
EXTI_ClearITPendingBit(EXTI_Line10);
}
}烧写后,按键一点反应都没有,不知道是哪里存在问题呢?
本帖最后由 Dylan疾风闪电 于 2016-6-30 08:39 编辑
对着这几个问题,检查一下自己的代码:
1、GPIO口的配置是否正确
2、EXTI寄存器是否配置,上升沿触发还是下降沿触发
3、中断是否开启
可以参考这个 (在链接转过去的20楼)例子 https://www.stmcu.org.cn/module/foru ... 9&page=2#pid2151820
RCC_APB2PeriphClockCmd(RCC_EXTI | RCC_LED | RCC_APB2Periph_AFIO, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
/* Configure GPIO Led pin 6 as Output push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIO_LED, &GPIO_InitStructure);
/* Configure Key Button GPIO Pin as input pull-up (Key Button EXTI Line) */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIO_EXTI, &GPIO_InitStructure);
//NVIC for EXTI
NVIC_GroupSet(NVIC_PriorityGroup_0, EXTI15_10_IRQn, 0);
/* Connect Key Button EXTI Line to Key Button GPIO Pin */
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource10);
/* Configure Key Button EXTI Line to generate an interrupt on falling edge */
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line = EXTI_Line10;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
/* Generate software interrupt: simulate a falling edge applied on Key Button EXTI line */
EXTI_GenerateSWInterrupt(EXTI_Line10);
检查程序, 如查不出问题时. 在死循环里面加一个10毫秒延时试下. 代码不全,按二楼的方法查吧,还有启动文件有没有加对 GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource10); 这个里面的GPIO_PortSourceGPIOB更改为GPIO_PortSourceGPIOF,你用的是PF10,配置确实PB10,当然是不行了。 需要确定下gpio初始化是否正确,还需要引用SYSCFG_EXTILineConfig,配置NVIC等。楼主代码不全 Jason-252755 发表于 2016-6-30 17:19
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource10); 这个里面的GPIO_PortSourceGPIOB更改为G ...
哥,一、二楼不是同一个人!!
另外,不是给他Ctrl+C/V的。只是排查的参考代码。
页:
[1]