当前位置: 首页 > wzjs >正文

六安网站建设企业网络营销导向企业网站建设

六安网站建设企业,网络营销导向企业网站建设,wordpress博客付费,wordpress photoshop触摸开关控件 v1.2 项目概述 本项目是基于STC8H8K64U单片机和RA8889/RA6809图形处理芯片(Micro GPU)开发的一款触摸开关控件,适用于TFT显示屏(最高1366*xxxx)和电容触摸屏(GT911)。该控件提供了美观、响应灵敏的开关界面,支持多个开关同时工作&#xff…

触摸开关控件 v1.2

在这里插入图片描述

项目概述

本项目是基于STC8H8K64U单片机和RA8889/RA6809图形处理芯片(Micro GPU)开发的一款触摸开关控件,适用于TFT显示屏(最高1366*xxxx)和电容触摸屏(GT911)。该控件提供了美观、响应灵敏的开关界面,支持多个开关同时工作,可应用于各类嵌入式人机交互界面,模块化设计,易移植,易维护,欢迎下载参考使用!

硬件配置

  • 单片机:STC8H8K64U(RT8H8K001开发板)(也可以采用ARM等各种MCU)
  • 图形处理芯片:RA8889/RA6809(RT6809CNN01开发板)
  • 显示屏:TFT 1024x600分辨率
  • 触摸屏:电容式GT911
  • 单片机-图形处理芯片的通信方式:SPI-4

程序流程

初始化流程

  1. 硬件初始化
    • 配置IO口:P0.5为双向口模式(SPI_MISO),其它为推挽输出
    • 配置GT911的IIC通信引脚
    • 配置触摸中断引脚(INT2/P3.6)
  2. SPI通信初始化
    • 初始化SPI4接口
  3. RA8889初始化
    • 硬件复位RA8889
    • 初始化RA8889显示配置
  4. 中断初始化
    • 配置INT2/P3.6为触摸屏中断输入
  5. GT911触摸控制器初始化
    • 初始化GT911配置
  6. 开关控件初始化
    • 初始化开关控件数组
    • 添加并配置所需开关
    • 绘制所有开关
    • 显示开关初始状态

主循环流程

  1. 触摸检测
    • 通过中断方式检测触摸事件
    • 当触摸中断发生时,设置触摸标志
  2. 触摸处理
    • 读取触摸点坐标
    • 判断触摸位置是否在开关区域内
    • 返回触发的开关ID
  3. 状态更新
    • 切换被触发开关的状态
    • 重绘被触发的开关
    • 更新状态显示
    • 等待防抖时间
  4. 触摸释放处理
    • 当无触摸点时,重置触摸状态
    • 清除触摸标志

控件使用说明

基本参数配置

  • 开关数量:最多开关数量可通过修改MAX_SWITCHES_NUM调整
  • 防抖动时间:默认20ms,可通过修改DEBOUNCE_TIME调整
  • 开关样式:可通过修改default_style结构体调整颜色、尺寸等样式

开关控件API

初始化函数
void Switch_Init(void);

初始化开关数组,清空已有开关。应在使用控件前首先调用。

添加开关
void Switch_Add(unsigned int x, unsigned int y, unsigned char initial_state);

添加一个新开关:

  • xy:开关左上角坐标
  • initial_state:初始状态(0:关闭,1:打开)
绘制开关
void Switch_Draw(unsigned char switch_id);

绘制指定ID的开关。ID从1开始编号。

void Switch_DrawAll(void);

绘制所有已添加的开关。

触摸处理
unsigned char Switch_HandleTouch(unsigned int touch_x, unsigned int touch_y);

处理触摸事件,判断是否触发开关:

  • touch_xtouch_y:触摸点坐标
  • 返回值:被触发的开关ID,返回0表示无开关被触发
状态显示(该函数用于检视触摸开关状态值)
void Switch_PrintStatus(unsigned char switch_id);

打印指定开关的状态信息。

void Switch_PrintAllStatus(void);

打印所有开关的状态信息。

使用示例

// 初始化开关控件
Switch_Init();
// 添加三个开关,位置和初始状态
Switch_Add(280, 200, 0);  // 开关1:位置(280,200),初始状态:关闭
Switch_Add(280, 300, 1);  // 开关2:位置(280,300),初始状态:打开
Switch_Add(280, 400, 0);  // 开关3:位置(280,400),初始状态:关闭
// 绘制所有开关
Switch_DrawAll();
// 显示文字说明:所有开关初始状态
Switch_PrintAllStatus();
// 在触摸处理中:
widget_switch_id = Switch_HandleTouch(touch_x, touch_y);
if(widget_switch_id > 0) {// 切换对应开关的状态switches[widget_switch_id-1].state = !switches[widget_switch_id-1].state;// 重绘被触发的开关Switch_Draw(widget_switch_id);// 更新状态显示Switch_PrintStatus(widget_switch_id);
}

外观定制

开关外观可通过修改default_style结构体进行定制,包括:

  • 尺寸:通过SWITCH_HEIGHT调整基准高度,宽度自动按比例计算
  • 倒角:通过SWITCH_CORNER调整按钮圆角
  • 偏移量:通过SWITCH_OFFSET调整边框宽度
  • 颜色:
    • bgColor:背景色(关闭状态)
    • selectBgColor:选中背景色(打开状态)
    • textbgColor:文字颜色(关闭状态)
    • textselectBgColor:选中文字颜色(打开状态)
    • switchColor:滑块颜色
    • borderColor:边框颜色

注意事项

  1. 使用前确保已正确初始化SPI、RA8889和GT911
  2. 开关数量不要超过MAX_SWITCHES_NUM定义的最大值
  3. 放置开关时注意坐标不要超出屏幕范围
  4. 触摸处理应在中断或主循环中周期性调用

源码下载

请看到视频末尾

参考视频

单片机-RAIO液晶控制芯片-触摸开关控件

http://www.dtcms.com/wzjs/794800.html

相关文章:

  • 六安网站建设培训株洲做网站优化
  • 响应式网站开发现状营口旅游网站开发
  • 领地申请的网站能备案吗wordpress回应是啥
  • 建设个人网站的要求中国建设银行网上银行官网
  • 可以用自己电脑做网站服务器吗做厨柜有招聘网站吗
  • 只做二手奢侈品的网站手机建站平台
  • 微信网站 微信支付百度网站抓取时间查询
  • 杭州论坛网快速排名软件seo系统
  • 库尔勒网站建设哪家好h5网站架设
  • asp服装网站模板秦皇岛seo优化
  • 优秀网站模板百度新版本更新下载
  • _网站建设网站嵌入式软件开发学习路线
  • 网站设计思路文案范文招聘网站数据分析要怎么做
  • 做网站首页ps企业建站套餐价格表
  • 怎么查看网站啥系统做的jsp借书网站开发
  • 网站首页栏目怎么做龙华营销型网站建设公司
  • 张家港网站开发制作网站模板哪个网站好
  • 物流公司网站怎么做网站开发什么语言好
  • 肇庆市住房和城乡房屋建设局网站做网站视频图片加载不出来
  • c++网站开发金湖网站设计
  • 活动策划网站有哪些广州全网推广
  • 湖南移动网站建设centos wordpress 权限
  • 开发公司租赁房产seo外包模板
  • 网站建设一般考虑哪些因素私域电商软件有哪些
  • 兴华建设集团有限公司网站石家庄建站外贸网站
  • 企业建站费用情况网站建设服务周到
  • php手机网站开发工具附近的网站电脑培训班
  • 注册公司网站模版工商注册实名认证
  • 深圳电商网络网站精品网名
  • 滕州做网站的平面广告设计网站