6692|1

50

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

ch554评测:一,开发环境学习和TouchKey自电容方式检测按键 [复制链接]

本帖最后由 iceriver 于 2017-11-29 16:21 编辑

1, 开箱照
          图1:开箱照
2, 初试开发板
      几个USB接口的电源都连在一起,通过电脑USB接口提供电源 ,此时跳线短接JP1的 4脚和6脚,3脚和5脚,单片机UART0连接ch340芯片,提供串口通讯功能
                 图2:默认跳线位置

3,   安装ch340驱动
      上电后电脑没有自动识别串口,去沁恒的官网下载了ch340的驱动,安装驱动后修改为串口6(如图3所示)。此时通过串口助手可以读到出厂程序上传的数据(图4所示)






                    图3:串口驱动安装好



                     图4:默认程序串口通讯截屏


4, 烧写程序实验
     烧写有两种方式,一种是通过串口烧写,一种是通过USB烧写。串口烧写时,USB通过P1与电脑相连,跳线短接JP1的第10和第8脚,第9和第7脚,如图5所示;软件设置如图6所示。USB下载时通过P2口与电脑相连,与跳线位置无关,软件设置如图7所示。无论是哪种下载方式,下载是都需要提前按住download按键,上电后再松开才可以实现正常下载





                 图5:串口烧写跳线位置

                 图6:串口下载成功





                 图7:USB下载成功


5,  TouchKey实验
     本人只了解了自电容相关的知识。CH554共有6路IO可以检测电容变化(如图8所示),自电容方式时每一路引脚单独检测其电容变化,由于开发板的K1,K2两个按键接了两个引脚,本人的实验未对其进行编程,也就是只检测P14(TIN2)和P15(TIN3)这两个通道。
     由于只检测P14和P15两个通路电容,故将初始化时宏定义修改如下,且单片机采用查询方式检测按键是否被按下,没有做软件滤波,检测阈值加到50。
     P1_DIR_PU &= 0xC0;
    #define KEY_FIRST            2                                                                                    
    #define KEY_LAST             3
    #define KEY_ACT              50
    #define INTERRUPT_TouchKey   0
    这是我的查询方式检测函数:
void TouchKeyChannelQuery()
{
   UINT8   ch = 0;
   UINT16 KeyData;      

   TKEY_CTRL = TKEY_CTRL & 0xF8 | KEY_FIRST +1 ;                 //从首通道开始采样 TIN2
   while((TKEY_CTRL&bTKC_IF) == 0);                                       //bTKC_IF变为1时,本周期采样完成
   KeyData = TKEY_DAT&0x07F0;                                              //保持87us,尽快取走
   //   ch = TKEY_CTRL&7;                                                        //获取当前采样通道
   if ( KeyData < (KeyFree[KEY_FIRST] - KEY_ACT) )                   //如条件满足,代表按键按下   
    {
       KeyBuf= KEY_FIRST ;                                                        //可以在此处进行按键动作处理或者置标志通知main进行处理
    }

   TKEY_CTRL = TKEY_CTRL & 0xF8 | KEY_LAST +1 ;                   //从首通道开始采样  TIN3
   while((TKEY_CTRL&bTKC_IF) == 0);                                        //bTKC_IF变为1时,本周期采样完成
   KeyData = TKEY_DAT&0x07F0;                                                //保持87us,尽快取走
   //   ch = TKEY_CTRL&7;                                                          //获取当前采样通道
   if ( KeyData < (KeyFree[KEY_LAST] - KEY_ACT) )                       //如条件满足,代表按键按下  
    {
       KeyBuf= KEY_LAST ;                                                           //可以在此处进行按键动作处理或者置标志通知main进行处理
    }   
}
             图8:CH554触摸电容检测通道
           图9:开发板触摸按键连接方式
                     

                     图10:触摸按键接收截图












此内容由EEWORLD论坛网友iceriver原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自单片机论坛

最新回复

  详情 回复 发表于 2017-11-30 09:26
点赞 关注
 

回复
举报

305

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
此帖出自单片机论坛
 
个人签名单价1元含税的USB和Touchkey单片机CH551G已大批量出货,试样QQ:1258305301
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表