lugl4313820 发表于 2024-2-19 14:42

【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体验之一&nbsp;</a></p>

<p><a href="https://bbs.eeworld.com.cn/thread-1271892-1-1.html">【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC体验之二&nbsp;</a></p>

<p><a href="https://bbs.eeworld.com.cn/thread-1271909-1-1.html">【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC体验之三&nbsp;</a></p>

<p><a href="https://bbs.eeworld.com.cn/thread-1271722-1-1.html">【ST NUCLEO-U5A5ZJ-Q开发板测评】移植TouchGFX实现数字时钟&nbsp;</a></p>

<p>在上面几篇帖子的综合体验中,今天把他们结合在一起,实现touchGFX的数字电压表,还带有实时曲线功能哦。</p>

<p>这里只讲述如何把电压展示到OLED屏上</p>

<p>在Model.cpp的tick函数中,我们取用DMA获取的ADC数据进行简单的平均,然后通过展示函数发送给Presenter,由SreenView来展示数据电压与实时曲线。</p>

<p>1、先用TouchGFX来设计一文本,让其显示电压值:</p>

<p>&nbsp; 2、添加一个曲线显示控件,用于显示实时的图形:</p>

<p>&nbsp; 在model.cpp中代码是把DMA的ADC数据平均,向P发送显示的命令与数据:</p>

<p> &nbsp;</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 />
&nbsp;</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]
查看完整版本: 【ST NUCLEO-U5A5ZJ-Q开发板测评】ADC之四 基于touchGFX的电压表