|
$ N0 o2 F) Y" x. R/ T0 A 当设备接外部传感器的时候,通过数据采样,需要在UI界面上将数据实时显示出来。这里以UI界面中的温度和胎压监测为例。还是以UI的MVP结构为基础,通过上位机串口发送数据,模拟实际传感器的测量数据,在UI界面上显示。 OK,UI界面图如图1和图2所示:
图1
图2) b, E- R8 Q. O( D 要在UI程序架构里增加UART通讯,先在原理图中查找相应的接口,如图3所示:" l! {' S9 ^/ E& G* N4 |& {: V' |
图3 o w9 Q) O5 E5 V% j USART3正好可以应用,连接好线,测试发现,这个接口不能使,原因尚未找到。然后找到了USART2接口,需要调整下短接电阻,如图4所示:. y* i) D' l! @. f+ P
图46 O3 G$ c, }& f1 M# A6 N 经测试,这个接口是可以使用的。所谓有坑也得迈过去。 7 J' F% V& w/ } . ]( j6 Z# S, B9 I 定义中断,如下所示:1 f& [, q( \6 _- O/ N
因为程序使用的是FreeRtos的架构,所以还得在默认任务里添加中断。! O: b3 E3 D3 t G& d4 N9 y. R9 o$ c" S7 [1 V% ` 简单测试一下,能收到数据,没有问题。下面修改UI的代码。 9 H7 w' o$ I5 l4 A) |4 f 2 e, j+ [- t0 C. ~% S) v 现在Model.cpp 中完成数据采集,如下:7 g+ C% Q- k, B+ G! A$ `
' M% Z, B3 E: k presenter.cpp 完成中转,如下所示:
5 ^$ n7 k8 w, j K) G& e( M O 然后在view.cpp 中完成数据显示,如下所示:4 J" |& S6 u5 S8 t/ e
: C' K" y2 D; ] 最后的效果,通过串口助手发送数据,如图5:
图5# \& j4 M4 N: n+ v UI界面实时显示,如图6所示:
图6% j* k% A( B- W6 K) G 实际操作还是很好玩的,如图7所示:
图7/ L& Q9 o O8 {$ q) ? |
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
STM32H743基于CubeMx5.0配置手册
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
微信公众号
手机版
完整做完之后可以打包发创客秀哈
好的