初级会员

- 积分
- 114
- 金钱
- 114
- 注册时间
- 2019-7-8
- 在线时间
- 51 小时
|
10金钱
最近在做用STM32和AD7190的SPI通信。当AD7190转换完成后,MISO引脚会被拉低,我不想在main函数中轮询监测这个MISO引脚,想问如何将SPI的MISO引脚配置成下降沿外部中断。我配置完后发现SPI不工作了,我用的是SPI2,MISO是PB14引脚,下面是我的代码,有没有好心人帮忙看看我配置的对不对,谢谢了。
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能复用功能时钟
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource14);
EXTI_InitStructure.EXTI_Line=EXTI_Line14;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_Init(&EXTI_InitStructure); //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; //使能按键PB14所在的外部中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //抢占优先级1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子优先级1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道
NVIC_Init(&NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
}
void EXTI15_10_IRQHandler()
{
if(EXTI_GetITStatus(EXTI_Line14) != RESET)
{
AD7190_ContinuousCovPolling(&AD7190);
EXTI_ClearITPendingBit(EXTI_Line14);
}
}
|
最佳答案
查看完整内容[请看2#楼]
看看MISO旁边的IO是否空着, 是就把它跟MISO接一块, 把这个IO配置为外部中断, 管脚是你付了钱的,放着不用也要付钱的
|