STM32L4 FW_L4 V1.17.2(MxCube.Version=6.6.0)でADCのバグ?

はじめに

 以前、「STM32L4 FW_L4 V1.16.0でADC CPU温度取得のバグ?」でADCを使ってCPU温度を取得する際に定義が誤って指定されるバグについて書きましたが、今回またバージョンアップでやらかしているので、メモのついでに公開しておきます。

不具合の内容

 ADCを使ってCPU温度、CPU電圧、基準電圧を取得するようにSTM32CubeIDEに設定してコードを出力した場合、ビルドで以下の部分がエラーになります。

LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(ADC1),LL_ADC_PATH_VREFINT|LL_ADC_PATH_TEMPSENSOR|LL_ADC_PATH_VBAT);

これ、一見あっているように見えますが、LL_ADC_PATH_VREFINT、LL_ADC_PATH_TEMPSENSOR、LL_ADC_PATH_VBATなんて定義はありません。

誤(Wrong value)正(Correction)
LL_ADC_PATH_VREFINT LL_ADC_PATH_INTERNAL_VREFINT
LL_ADC_PATH_TEMPSENSORLL_ADC_PATH_INTERNAL_TEMPSENSOR
LL_ADC_PATH_VBATLL_ADC_PATH_INTERNAL_VBAT
正誤表

INTERNALが抜けています。

解決策

以下のコードが解決策になります。sTM32CubeIDEで修正して出力(Generate Code)を行うとこれが出力されてしまうので、早く解決してほしい。

LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(ADC1), LL_ADC_PATH_INTERNAL_VREFINT|LL_ADC_PATH_INTERNAL_TEMPSENSOR|LL_ADC_PATH_INTERNAL_VBAT);

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください