【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC体验之一
【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC体验之二
在上面两篇帖子的前提下,把电压实时绘制到OLED屏上。
1、首先我先确定曲线的区域在x轴的10-50上,y轴为0-128;
2、所测的数值为0-16384(即2的16次方)。
Y轴的点换数公式为:Y= 50-40*ADC值/16384。
由于代码如下:
while (1)
{
total_val = 0;
for(int i=0; i<32;i++)
{
total_val +=aADCxConvertedData[i];
}
printf("ADC VaL:%d voltage:%.4f \r\n ", total_val/32, (float)(total_val/32)*3.3/16384);
//HAL_Delay(500);
static int xPos = 0;
y_val = 50-(uint8_t)((40*(float)total_val/16384.0)/32);
/* Only write to buffer when not in transmission */
SSD1306_DrawPixel(xPos,y_val,0x01);
/* Update the ssd1306 display in non-blocking mode -> should return SSD1306_STATE_READY if successful */
SSD1306_UpdateScreen();
xPos++;
if (xPos == 128)
{
SSD1306_Clear();
xPos = 0;
}
/* 40 fps (tested up to 200 fps!) */
HAL_Delay(25);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
使用手动转动电位器,实现的效果如下视频: