HALを使用したSTM32 ADC変換
stm32から「新しい」HALライブラリを使用する方法を学習しようとしています。 単純なADC変換を行おうとすると、1回だけ機能しますが、変換が停止します。変換終了フラグが設定されていないと思います。STM32f429I Discoveryボードを使用していますが、これにはボードにSTM32f429ZIが搭載されています。 私はsprintfが悪い習慣であることを知っており、割り込みでADCを作成する方が良いことを知っています。指摘しないでください。これは質問には関係ありません。ここではHALをテストしています。 では、問題はなぜEOCフラグが設定されていないのか、それを機能させるために何ができるのかということです。HALに関する優れた資料が非常に少ないため、グーグル検索はあまり役に立ちません。 これがコードです: __IO uint16_t ADCValue=0; void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc); int main(void) { char str[15]; /* Various initializations */ HAL_ADC_Start(&hadc1); while (1) { if (HAL_ADC_PollForConversion(&hadc1, 1000000) == HAL_OK) { ADCValue = HAL_ADC_GetValue(&hadc1); sprintf(str, "%d", ADCValue); BSP_LCD_DisplayStringAt(130,30, (uint8_t*)str, LEFT_MODE); } } void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { ADCValue = HAL_ADC_GetValue(&hadc1); } …