TouchGFX之温度曲线
【前言】
touchGFX拥有强大的图表功能,特别是动态图表控件,可以这时展示数据曲线,今天就利用这个控件,实现实时温度曲线。
【硬件】
- STM32U599J-DK开发板。
- 开发上的stts22h温度传感器。
【开发软件】
- stm32CubeIDE。
- VScode
- TouchGFX 4.22.1
【学习资料】
【实现步骤】
- 创建空白工程:
- 添加动态图表工具到工程里:
- 添加背景图片与文字(略)大家可以自由发挥。
- 修改图表的属性:
到此图形界面设计完成,具体设置的参数大家可以参考教程。
【代码编写】
- 用stm32cubeIDE开启i2c3并将stts22h的驱动库加载到工程里面,添加驱动编译文件与路径:
- 在app_freertos.c中添回stts22h的驱动头文件,声明一个全局函数用于传寄获取到的温度值。在一个任务中循环读取stts22h的值。
具体读取的驱动库我会附上源代码,大家可以自行查看,不在这篇的重点之中。
- 按照Model->Presenter->View的原则,逐一添回代码。
- 在model.hpp中,我们添加储存温度的变量与获取、保存的函数:
- 在model.cpp的tick函数中,我们每20个tick更新一次温度的值。
- 在screen1Presenter.hpp中我们实现一个获取温度值的函数:
float getTemp()
{
return model->getTemp();
}
- 在screen1View.hpp添加handleTickEvent虚函数,并在screen1Presenter.cpp中实现
- 在screen1View.cpp中实现每60个tick向图形控制中添加一个温度值数据点:
void Screen1View::handleTickEvent()
{
tickCount ++;
if(tickCount == 60)
{
dynamicGraph1.addDataPoint((int)presenter->getTemp());
tickCount = 0;
}
}
到此我们的代码与图形界面都设计完毕,在touchGFX Designer中编译下载。
【实现的效果】
附工程源码: