iceriver 发表于 2017-11-29 16:12

ch554评测:一,开发环境学习和TouchKey自电容方式检测按键

<div class='showpostmsg'> 本帖最后由 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_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_ACT) )                     //如条件满足,代表按键按下    {       KeyBuf= KEY_LAST ;                                                         //可以在此处进行按键动作处理或者置标志通知main进行处理    }    }             图8:CH554触摸电容检测通道          图9:开发板触摸按键连接方式                     
                     图10:触摸按键接收截图











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

</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

沁恒USB单片机 发表于 2017-11-30 09:26

:handshake
页: [1]
查看完整版本: ch554评测:一,开发环境学习和TouchKey自电容方式检测按键