我正在使用 STM32F207VC 控制器。我将外部探头温度传感器连接到 stm32 的内部 ADC 通道之一。
当它连接到控制器时,我想生成一个外部中断,我应该从外部温度传感器开始测量。
请任何人都可以提供我的代码或任何帮助
谢谢
我有一个与 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 作为我的工具链。