ADC功能:
使用DMA采集R37和R38的电压,由上图可以看出,开发板上有两个可调电阻R37, R38,分别连接到PB15,和PB12。
ADC数据的读取
使用Keil打开刚刚生成的代码,将下列代码粘贴到main.c
的/* USER CODE BEGIN 0 */
和/* USER CODE END 0 */
之间
uint16_t getADC1(void) // 获取PB12引脚的电压(对应R38电阻)
{
uint16_t adc = 0;
HAL_ADC_Start(&hadc1);
adc = HAL_ADC_GetValue(&hadc1);
return adc;
}
uint16_t getADC2(void) // 获取PB15引脚的电压(对应R37电阻)
{
uint16_t adc = 0;
HAL_ADC_Start(&hadc2);
adc = HAL_ADC_GetValue(&hadc2);
return adc;
}
电压数据的显示
在main()
的while()
中插入如下代码:
char buf[64] = {0};
sprintf(buf , "ADC1(R38): %.2f V", (3.3 * getADC1())/4096);
LCD_DisplayStringLine(Line8, (uint8_t *)buf);
sprintf(buf , "ADC2(R37): %.2f V", (3.3 * getADC2())/4096);
LCD_DisplayStringLine(Line9, (uint8_t *)buf);