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

礼品做便宜的网站phpcms v9怎么做网站

礼品做便宜的网站,phpcms v9怎么做网站,沈阳建立网站,建设局网站模板一. 触摸原理介绍 1. 触摸按键电容产生原理 一般应用中,可用手指与触摸板的电容模型简化代替人体与触摸板的电容模型,如图所示。 沁恒微电子的电容触摸按键检测方案主要有以下两种: (1) 电流源充电方案。 低功耗蓝牙系列、通用系列 MCU 使…

一. 触摸原理介绍

1. 触摸按键电容产生原理 一般应用中,可用手指与触摸板的电容模型简化代替人体与触摸板的电容模型,如图所示。

 

沁恒微电子的电容触摸按键检测方案主要有以下两种:

(1) 电流源充电方案。 低功耗蓝牙系列、通用系列 MCU 使用该方式。相同的充电时间,通过单片机内部 AD 采集触摸通道的电压值,与未按下时的值作差,再根据定义的阈值识别按键按下与抬起。 沁恒微电子在电流源充电方案的基础上提供驱动屏蔽和密集模式两种增强功能。增强功 能进一步提高了触摸按键的稳定性,使触摸按键具有防水特性。低功耗蓝牙系列 CH58x/C WCH 触摸应用指南 3 H59x 芯片支持驱动屏蔽技术,青稞 RISC-V 通用系列、Cortex-M 通用系列、低功耗蓝牙系 列支持密集模式。 

(2) 松弛振荡方案。 单片机内部采集固定时间段的脉冲个数,与未按下时的个数作差,然后根据定于的阈值 识别按键的按下与抬起,如 CH554 系列。

更多更详细的硬件设计内容,大家可以参考官方提供的相关文档:WCH触摸应用指南

 二、代码修改

我们的项目需要用到BLE功能,所以我们用的样例程序是官方提供的Touch_Key_with_ble

与触摸按键相关的代码文件主要有:

 libCH59xTOUCH.a
 wchtouch.h
 Touch.c
 Touch.h
 TouchKey_CFG.h
 app_tmos.c
 app_tmos.h
 peripheral_main.c 

其中 libCH59xTOUCH.a 和 wchtouch.h为 WCH 提供的触摸库文件;Touch.c 和 Tou ch.h 为触摸库相关的操作,包括库初始化、触摸通道初始化、触发按键获取等;Touch Key_CFG.h 为 触摸库配置参数文件。

app_tmos.c、app_tmos.h、 peripheral_main.c  为应用层文件。其中 app_tmos.c、app_tmo s.h 与 BLE 配合工作,使用 tmos 进行管理、获取按键。

官方提供的样例程序可以直接使用,不过样例程序提供了12个触摸按键,但我们实际应用中通常不需要这么多触摸按键,接下来,我们来讲解如何修改。

1、TouchKey_CFG.h的修改:

(我们的项目使用了PA5、PA8两个触摸键)

typedef enum _TKY_QUEUE_ID
{
TKY_QUEUE_0 = 0,
TKY_QUEUE_1,
TKY_QUEUE_END
} TKY_QUEUE_ID;#define TKY_MAX_QUEUE_NUM     			            TKY_QUEUE_END#define TKY_CHS_INIT \GEN_TKY_CH_INIT(TKY_QUEUE_0,1,3,3,0,3284,66,52),\GEN_TKY_CH_INIT(TKY_QUEUE_1,2,3,3,0,3600,67,54)

 

 2、Touch.h的修改

typedef enum
{KID_K0 = 0,KID_K1
}KEY_ID_E;typedef enum
{KEY_NONE = 0,           //0 表示按键事件 */KEY_0_DOWN,             // 1键按下 KEY_0_UP,               // 1键弹起 KEY_0_LONG,             // 1键长按 KEY_1_DOWN,             // 2键按下 KEY_1_UP,               // 2键弹起 KEY_1_LONG            // 2键长按 }KEY_ENUM;/* 按键FIFO用到变量 */
#define KEY_FIFO_SIZE   (TKY_MAX_QUEUE_NUM * 8)          //可根据使用环境和硬件需要进行修改*/

Touch.h在我们的项目中,其实可以不用修改 。

3、Touch.c 的修改

static const uint32_t TKY_Pin[TKY_MAX_QUEUE_NUM][2] = {{0x00, 0x00000020},//PA5,AIN1{0x00, 0x00000100}//PA8,AIN12
};pIsKeyDownFunc KeyDownFunc[12] =
{IsKeyDown1,IsKeyDown2
};#if 0
static uint8_t IsKeyDown3(void)
{if (keyData & 0x0004)   return 1;else                    return 0;
}static uint8_t IsKeyDown4(void)
{if (keyData & 0x0008)   return 1;else                    return 0;
}static uint8_t IsKeyDown5(void)
{if (keyData & 0x0010)   return 1;else                    return 0;
}static uint8_t IsKeyDown6(void)
{if (keyData & 0x0020)   return 1;else                    return 0;
}static uint8_t IsKeyDown7(void)
{if (keyData & 0x0040)   return 1;else                    return 0;
}static uint8_t IsKeyDown8(void)
{if (keyData & 0x0080)   return 1;else                    return 0;
}static uint8_t IsKeyDown9(void)
{if (keyData & 0x0100)   return 1;else                    return 0;
}static uint8_t IsKeyDown10(void)
{if (keyData & 0x0200)   return 1;else                    return 0;
}static uint8_t IsKeyDown11(void)
{if (keyData & 0x0400)   return 1;else                    return 0;
}static uint8_t IsKeyDown12(void)
{if (keyData & 0x0800)   return 1;else                    return 0;
}
#endif

4、app_tmos.c的修改

void tky_on_TMOS_dataProcess(void)
{uint8_t key_val = 0;key_val = touch_GetKey();if (key_val != 0x00){    //有触摸按键,增加相应的处理程序if (bleConnectState ){peripheralChar2Notify( &key_val, 1 );//将键值上报给上位机蓝牙}}
}

这个函数是读取触摸按键的键值,并判断是否有触摸按键,如果有,增加相应的处理程序,这部分程序与我们项目有关,不方便提供,大家可以自行增加相应的功能,比如简单控制LED。

完整工程请参考:CH592Ftouchkeywithble&RF资源-CSDN文库

写这篇文章,更多的意义是记录自己对官方提供的样例程序的 理解及修改的一些体会,毕竟我们的项目几乎只是在样例程序上略作修改,并增加了一些自己需要的功能,如此而已。如果能对大家有那怕一点点帮助,纯属意外之喜。

http://www.dtcms.com/a/615413.html

相关文章:

  • 新城免费做网站移动应用开发就业方向
  • Go语言编译器源码解析|深入理解Go语言编译器的工作原理与实现
  • 广宁住房和城乡建设局网站做服装有哪些好的网站
  • C语言反编译器:深入分析与常见应用
  • 网站项目框架杭州网站建设 杭州app
  • 嵌入式系统200问,从电阻到RTOS全解析(AI助教回答)适用入门嵌入式软件初级工程师,筑牢基础,技术积累
  • Linux网络DNS与ICMP
  • 环企优站网站建设手机 登录asp网站
  • 30-ESP32-S3开发环境搭建
  • 哪些网站可以做招商广告语wap门户网站源码
  • Linux小程序(1)—— 简单进度条
  • 做gif图的网站优质外贸网站
  • 网上虚拟银行注册网站店铺logo在线制作免费
  • 东莞装饰网站建设蛟河市建设局网站
  • 第一章 函数与极限 8.函数的连续性与间断点
  • Day3算法训练(简写单词,dd爱框框,3-除2!)
  • Edu144 CD
  • 不同数据结构在硬件平台(如ARM、x86)上的性能表现差异
  • 无限容量网站wordpress新用户提醒
  • 网站欢迎页面flash兰州公司网站建设
  • 岚图泰山将登陆欧洲、中东,岚图泰山的海外布局如何看?
  • 广州网站设计工作室芜湖网站建设whwzjs
  • 网页设计新建站点数字广东网络建设公司
  • 做搬家广告哪家网站有优百度指数怎么看排名
  • 网站系统后台网站建设销售提点20个点
  • 做学历的网站建e网下载
  • 如何来做网站优化网站开发维护求职信
  • 淮北市住房和城乡建设局网站如何韩国视频网站模板下载 迅雷下载地址
  • 网站建设sunmun网站建设方面的书籍推荐
  • 龙港 网站建设一站式网络营销