バッテリ電圧検出アプリケーションの設計
STM32は理解:https://blog.csdn.net/u010893262/article/details/68942710
A、ADC(アナログ - デジタル変換器)アナログ - デジタル変換器
アナログ----->デジタル・シグナル
第二に、ADC周辺構成の動作パラメータ
第二に、ADC周辺構成の動作パラメータ
第三に、動作パラメータUSART周辺機器の設定
第四に、コードを生成
main.cのファイルに必要な変数を設定します
/ * ユーザコードは、PV BEGIN * / // ADC値が格納されている変換 uint16_t = adc_value 0 ; // の電圧値 フロート電圧= 0.0 ; // 電圧の結果は、 チャー [voltStringを50 ] = { 0 }; / * ユーザコードEND PV * /
whileループで
while (1) { // 启动ADC转换 HAL_ADC_Start(&hadc1); // 等待转换完成,第二个参数表示超时时间,单位ms HAL_ADC_PollForConversion(&hadc1, 100); // 为换取ADC状态 adc_value = HAL_ADC_GetValue(&hadc1); // 采取的右对齐除以2的12次方,参考电压为3.3V voltage = (float)adc_value / 4096 * 3.3; sprintf(voltString, "²É¼¯µ½µÄµçѹֵΪ: %.2f V", voltage); printf("%s\r\n", voltString); HAL_Delay(1000); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ }
在USART.c添加
#include "usart.h" int fputc(int ch, FILE *f) { HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); return ch; }
在USART.h添加
#include "main.h" #include <stdio.h>