ピンツールを使用してGPIOピンを割り当てると、生成されたコードがGPIOマクロではなくPORTマクロを初期化コードに誤って割り当ててしまいます。
expected 'GPIO_Type *' but argument is of type 'PORT_Type *'
hal_gpio_pin_config_t createAdapterGpioPinConfig(GPIO_Type *port, uint8_t pin, hal_gpio_direction_t direction, uint8_t level)
例えば、私のpin_mux.hでは次のようになります。
/* Symbols to be used with GPIO driver */
#define BOARD_INITPINS_LCD_BL_GPIO GPIOA /*!<@brief GPIO peripheral base pointer */
#define BOARD_INITPINS_LCD_BL_INIT_GPIO_VALUE 1U /*!<@brief GPIO output initial state */
#define BOARD_INITPINS_LCD_BL_GPIO_PIN_MASK (1U << 17U) /*!<@brief GPIO pin mask */
/* Symbols to be used with PORT driver */
#define BOARD_INITPINS_LCD_BL_PORT PORTA /*!<@brief PORT peripheral base pointer */
#define BOARD_INITPINS_LCD_BL_PIN 17U /*!<@brief PORT pin number */
#define BOARD_INITPINS_LCD_BL_PIN_MASK (1U << 17U) /*!<@brief PORT pin mask */
次にペリフェラル.cで
gpioPinConfig = createAdapterGpioPinConfig(BOARD_INITPINS_LCD_BL_PORT, BOARD_INITPINS_LCD_BL_PIN, BOARD_INITPINS_LCD_BL_PIN_DIRECTION, BOARD_INITPINS_LCD_BL_PIN_LEVEL);
次のように変更する必要があります。
gpioPinConfig = createAdapterGpioPinConfig(BOARD_INITPINS_LCD_BL_GPIO, BOARD_INITPINS_LCD_BL_PIN, BOARD_INITPINS_LCD_BL_PIN_DIRECTION, BOARD_INITPINS_LCD_BL_PIN_LEVEL);
これには、peripherals.c の手動編集が必要です。設定を変更するたびにコードが実行されます。これを恒久的に解決する方法はありますか?
対象プロセッサ: MCXW71
こんにちは、 @cnebe-autopac
私自身もテストしてみました。
/* Get GPIO pin configuration */
hal_gpio_pin_config_t createAdapterGpioPinConfig(GPIO_Type *port, uint8_t pin, hal_gpio_direction_t direction, uint8_t level){
hal_gpio_pin_config_t temp;
生成されたコードは正しいです。
この問題を再現するにはどうすればよいですか?
BR
ハリー