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> :handshake
页:
[1]