【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC之四 基于touchGFX的电压表
<div class='showpostmsg'> 本帖最后由 lugl4313820 于 2024-2-19 14:58 编辑<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><a href="https://bbs.eeworld.com.cn/thread-1271909-1-1.html">【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC体验之三 </a></p>
<p><a href="https://bbs.eeworld.com.cn/thread-1271722-1-1.html">【ST NUCLEO-U5A5ZJ-Q开发板测评】移植TouchGFX实现数字时钟 </a></p>
<p>在上面几篇帖子的综合体验中,今天把他们结合在一起,实现touchGFX的数字电压表,还带有实时曲线功能哦。</p>
<p>这里只讲述如何把电压展示到OLED屏上</p>
<p>在Model.cpp的tick函数中,我们取用DMA获取的ADC数据进行简单的平均,然后通过展示函数发送给Presenter,由SreenView来展示数据电压与实时曲线。</p>
<p>1、先用TouchGFX来设计一文本,让其显示电压值:</p>
<p> 2、添加一个曲线显示控件,用于显示实时的图形:</p>
<p> 在model.cpp中代码是把DMA的ADC数据平均,向P发送显示的命令与数据:</p>
<p> </p>
<p>在screeView中,我们把获取的电压值,更新到文本显示中,以及把数据点添加到图形中:</p>
<pre>
<code>void Screen1View::UpVal(float val)
{
Unicode::snprintfFloat(textArea1Buffer, TEXTAREA1_SIZE, "%.3f", val);
textArea1.invalidate();
dynamicGraph1.addDataPoint(val);
}
</code></pre>
<p>【实验效果】</p>
<p>转动电位器,电压实时变化,曲线也跟随变化,效果如下视频:</p>
<p>985522ba895796b84422358a90052042<br />
</p>
</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>
页:
[1]