0

stm32f103 ボードの A1 ポートで外部割り込みを構成する必要があります。stm32cubemx でテンプレートを作成しますが、割り込みを手動で構成しようとしています。これは、既に記述したコードの新しい機能であるためです。多くのトピックを読んでいますが、解決策が見つかりません。このプロジェクトでは、HAL ライブラリを使用し、次の手順に従います。

GPIO を構成する

      GPIO_InitStruct.Pin = GPIO_PIN_1;
      GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

IRQ を有効にする

     HAL_NVIC_SetPriority(EXTI1_IRQn, 3, 0);
     HAL_NVIC_EnableIRQ(EXTI1_IRQn);

コールバックのカスタマイズ

      void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
     {
      if(GPIO_Pin == STEP_PIN)
      {
        GlobalMotorData.step.longint++;
      }
     }

新しい .c ファイルにコールバック関数を書きましたが、stm32f1xx_hal_gpio.c 内の同じ関数には触れていません。

プロジェクトが対応する.hヘッダーファイルを見つけられないため、マクロHAL_EXTI_MODULE_ENABLEDを有効にしませんでしたが、マクロがなければ、コードはエラーなしでビルドされます。

何を忘れた?

ありがとうございました

4

1 に答える 1