定时器捕获模式进入不了中断

2019-12-11 18:24发布

正在测试一个代码,
PC6是LED灯,通过定时器4捕获霍尔元件的输入信号,如果进入中断则灯亮。
但是不知道为什么进不去,配置如下,大佬解析一下
  1. void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
  2. {
  3.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_RESET);
  4. }
复制代码
  1. int main(void)
  2. {  
  3. HAL_Init();
  4.   SystemClock_Config();
  5.   MX_GPIO_Init();
  6.   MX_TIM4_Init();
  7.   while (1)
  8.         {}
  9. }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
wangmengqiwo
2019-12-12 11:09
20061002838 发表于 2019-5-8 23:07
调试界面检查寄存器
飞线加个上拉电阻试试呗

重新配置了霍尔元件接口,使用CubeMX中定时器的XOR/Hall Sensor Mode, 然后做了以下初始化,
  1. void HallInit(void)
  2. {
  3.         if(HAL_TIMEx_HallSensor_Start(&htim4)!= HAL_OK)
  4.                 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, GPIO_PIN_RESET);
  5.         //HAL_TIM_IC_Start_IT(&htim4, TIM_CHANNEL_1|TIM_CHANNEL_2|TIM_CHANNEL_3);
  6.         HAL_TIMEx_HallSensor_Start_IT(&htim4);
  7. }
复制代码
在捕获中断里产生了LED等的取反操作,然而如果是初始化捕获中断(在初始化中标注的句子)就无法产生中断。
  1. void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
  2. {
  3.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, 1-HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_7));
  4. }
复制代码
不清楚是不是HAL库的什么设定。
之前卡在这里几天就是上面那个初始化的问题,初始化了霍尔接口没有初始化其中断,感谢大佬了。
这个带霍尔元件的电机驱动我做完了做个大的总结。

一周热门 更多>