【STM32H750 】RT-Thread触摸屏控制一个led灯试验

  1. 创建一个bootlader工程

编译bootlader工程后烧写到板子中,用于使用外挂Falsh存储代码时 初始化外挂的Flash、映射物理地址及地址跳转

  1. 创建一个demo工程命名mStm32H750V1.1.0 我用的BSP1.1.0版本

从原理图看到使用的I2C1通道,使能打开

配置中添加GT9147驱动、打开TouchGFX库、LCD、C++库,使能相关宏

  1. 编译后烧写进板子,串口中看到会死掉,提示硬件错误

  1. 通过排查,删掉触摸屏驱动后程序跑起来正常,查代码以及GT9147手册发现

触摸屏规格书写的最大5个点,而代码中初始化触摸屏后,直接读取到info.point_num为10个点,导致后面读屏幕触摸点直接按10个点去读。

解决办法,仍然在STM32TouchController.cpp文件,触摸屏初始化函数中,添加上限判断,如果读到的点数大于5个则就按5个来

  1. 修改后重新编译烧写进去板子验证ok,但还有个问题就是坐标跟ui的反了,仍然是在STM32TouchController.cpp文件中,sampleTouch函数中读取点坐标修改如下:

重新编译烧写进去板子验证ok

  1. UI上添加一个按钮,来设置板子上LED灯开关

注MVP框架:

# View层负责界面的显示,和界面显示效果的切换

# Model层负责操作底层硬件

# Presenter负责沟通两者,并负责逻辑部分。沟通体现在View接收到用户的输入信息后,不直接调用硬件,而是上报给Presenter,Presenter通知Model,Model最终完成硬件的处理。而View要获得传感器数据等信息,也是通过Presenter来调用Model读取硬件相关信息。而Presenter负责逻辑部分,可以在改变视图的同时不改变逻辑

在TouchGFX工具中添加开关按钮如下,修改需要的命名

我们编译后在RT-Thread Studio中刷新下code,看到MainViewBase中会自动生成如下的代码,该文件为只读,我们修改不了

我们可以看到MainView 继承MainViewBase

因此我们需要在MainView中添加如下,而setLED 方法也是没有的,我们需要进一步添加以下逻辑如下。

添加完编译后烧写进去板子验证,在触摸屏上点开关,查看串口中输出以及LED灯效果按预期效果

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值