打印

【新手求救】关于EXTI中断的

[复制链接]
277|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
张さん|  楼主 | 2019-11-1 16:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TI, pi, IO, gp, GPIO
尝试自己写了一下EXTI中断的代码。可是一直不成功。
编译没有问题,程序烧进去灯能亮,就是按键没反应。自己找了好久了 也不知道错在哪里=- =由于没买仿真器,也不能仿真。。

求求各位帮忙看一下代码 哪里漏了或错了


/* gpio配置 */
void gpio_cofig(void)
{
GPIO_InitTypeDef GPIO_led;
GPIO_InitTypeDef GPIO_key;

/* 打开时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

/*   配置led灯  */
GPIO_led.GPIO_Pin = GPIO_Pin_All;
GPIO_led.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_led.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_led);

/*   关灯  */
GPIO_WriteBit(GPIOB, GPIO_Pin_0, Bit_SET);
GPIO_WriteBit(GPIOB, GPIO_Pin_1, Bit_SET);
GPIO_WriteBit(GPIOB, GPIO_Pin_5, Bit_SET);

/* 配置PA0为输入模式 */
GPIO_key.GPIO_Pin = GPIO_Pin_0;
GPIO_key.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_key);

/* 配置PA0为EXTI中断*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_EXTILineConfig( GPIO_PortSourceGPIOA, GPIO_PinSource0 );

}

/* 配置exti相关寄存器,初始化exti0*/
void exti_key1_config (void)
{
EXTI_InitTypeDef exti_initstruct_key1;

exti_initstruct_key1.EXTI_Line = EXTI_Line0;
exti_initstruct_key1.EXTI_Mode = EXTI_Mode_Interrupt;
exti_initstruct_key1.EXTI_Trigger = EXTI_Trigger_Rising;
exti_initstruct_key1.EXTI_LineCmd = ENABLE;

EXTI_Init(&exti_initstruct_key1);
}

/* 初始化nvic寄存器的exti中断 */
void nvic_key1_config (void)
{
NVIC_InitTypeDef nvic_initstruct_key1;

NVIC_PriorityGroupConfig( NVIC_PriorityGroup_1 );//设置优先级分组为分组1

nvic_initstruct_key1.NVIC_IRQChannel = EXTI0_IRQn;
nvic_initstruct_key1.NVIC_IRQChannelPreemptionPriority = 1;
nvic_initstruct_key1.NVIC_IRQChannelSubPriority = 1;
nvic_initstruct_key1.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&nvic_initstruct_key1);

}

我觉得会出错应该就在这里 所以没有粘上main函数和中断函数的部分

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

448

主题

464

帖子

1

粉丝