45 lines
990 B
C
45 lines
990 B
C
#include "VM_Exti.h"
|
|
|
|
uint32_t Hall_Frequency_Num = 0; //霍尔传感器频率计数
|
|
uint32_t Hall_Num = 0; //频率计数
|
|
uint16_t Hall_Tim_Num = 0; //霍尔传感器定时标志位
|
|
uint8_t Hall_Gather_Control = 0; //霍尔采集控制器
|
|
|
|
|
|
//中断服务函数
|
|
void EXTI0_IRQHandler(void)
|
|
{
|
|
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); //调用中断处理公用函数
|
|
}
|
|
|
|
void EXTI2_IRQHandler(void)
|
|
{
|
|
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); //调用中断处理公用函数
|
|
}
|
|
|
|
void EXTI3_IRQHandler(void)
|
|
{
|
|
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3); //调用中断处理公用函数
|
|
}
|
|
|
|
void EXTI4_IRQHandler(void)
|
|
{
|
|
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4); //调用中断处理公用函数
|
|
}
|
|
|
|
//中断服务程序中需要做的事情
|
|
//在HAL库中所有的外部中断服务函数都会调用此函数
|
|
//GPIO_Pin:中断引脚号
|
|
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|
{
|
|
switch(GPIO_Pin)
|
|
{
|
|
case GPIO_PIN_2:
|
|
if(Hall_Gather_Control == 1){ //霍尔传感器计数开始 (后期实现该功能时或许可以通过开关引脚中断控制)
|
|
Hall_Frequency_Num++;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|