当外部温度传感器连接到STM32F207VC时产生EXTI中断

时间:2012-09-27 13:48:52

标签: sensor stm32 adc

我使用的是STM32F207VC控制器。我的外部探头温度传感器连接到stm32的内部ADC通道之一。

我想在连接到控制器时产生外部中断,我应该从外部温度传感器开始测量。

请允许任何人在此提供代码或任何帮助

由于

1 个答案:

答案 0 :(得分:1)

我有一个与Solomon Systems SSD1963 GPU接口的STM32F4处理器。 GPU具有撕裂信号(TE),当处理器即将进行垂直刷新时通知处理器。我希望您可以使用此代码作为示例,并使其适应您的解决方案。

TE信号连接到CPU的GPIO G7引脚。所以首先我必须配置GPIO引脚。

//GPIO Pin G7
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOG, &GPIO_InitStructure);

接下来我必须配置中断和NVIC。

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOG, EXTI_PinSource7);

EXTI_InitTypeDef EXTI_InitStructure;
EXTI_StructInit(&EXTI_InitStructure);
EXTI_InitStructure.EXTI_Line = EXTI_Line7;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);

NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

最后,我必须创建中断处理程序。 EXTI9_5_IRQHandler处理第5~7行的外部中断。此方法实际上在我的CPU启动程序集文件中定义为弱引用。我只需要重新定义方法,链接器将完成剩下的工作。

extern "C" void EXTI9_5_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line7) != RESET)
    {
        //Handle the interrupt

        EXTI_ClearITPendingBit(EXTI_Line7);
    }
}

我正在使用Mentor Graphics的Sourcery Codebench Lite作为我的工具链。