【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC体验之三 手绘电压曲线
<div class='showpostmsg'><p><a href="https://bbs.eeworld.com.cn/thread-1271887-1-1.html">【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC体验之一 </a></p><p><a href="https://bbs.eeworld.com.cn/thread-1271892-1-1.html">【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC体验之二 </a></p>
<p>在上面两篇帖子的前提下,把电压实时绘制到OLED屏上。</p>
<p>1、首先我先确定曲线的区域在x轴的10-50上,y轴为0-128;</p>
<p>2、所测的数值为0-16384(即2的16次方)。</p>
<p>Y轴的点换数公式为:Y= 50-40*ADC值/16384。</p>
<p>由于代码如下:</p>
<pre>
<code>while (1)
{
total_val = 0;
for(int i=0; i<32;i++)
{
total_val +=aADCxConvertedData;
}
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 */
}</code></pre>
<p>使用手动转动电位器,实现的效果如下视频:</p>
<div></div>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>视频如下,因为没有波形发生器,效果一般般。</p>
<p>aaded14460348b446c35ccf157b45e5b<br />
</p>
<p> </p>
<p>手绘电压曲线,学习了</p>
<p>应该用大点的,分辨率高点的屏 </p>
秦天qintian0303 发表于 2024-2-18 08:43
应该用大点的,分辨率高点的屏
<p>先用OLED屏画,后面想用MCU屏,但是还没有学会如何驱动。</p>
lugl4313820 发表于 2024-2-18 09:16
先用OLED屏画,后面想用MCU屏,但是还没有学会如何驱动。
<p>效果已经非常丝滑了,点赞!!!</p>
HonestQiao 发表于 2024-2-18 17:57
效果已经非常丝滑了,点赞!!!
<p>还不行,如果跳变大,不成线,是点,下一步准备用touchgfx的曲线功能来实现。</p>
页:
[1]