29.4
电容按键实验
电容按键不需要任何外部机械部件,使用方便,成本低,很容易制成与周围环境相密封的键盘,以起到防潮防湿的作用。电容按键优势突出使得越来越多电子产品使用它代替传统的机械按键。
29.4.1
硬件设计
开发板板载一个电容按键,电容按键电路设计请参考下图。

标示TPAD1在电路板上就是电容按键实体,默认连接到P708,即CTSU单元1的通道TS12。充电电容的阻值为680欧姆,电阻的大小决定了电容按键充电的时间。
实验还用到调试串口和LED功能,用来打印输入捕获信息和指示电容按键状态,这两个模块电路可参考之前相关章节。
29.4.2
软件设计
29.4.2.1
新建工程
因为本章节的UART相关实验例程需要用到板子上的LED功能,因此我们可以直接以前面的“11_GPIO_LED”工程为基础进行修改。
对于e2 studio开发环境:拷贝一份我们之前的e2s工程模板“11_GPIO_LED”,然后将工程文件夹重命名为“CTSU_basic”,最后再将它导入到我们的e2 studio工作空间中。
对于Keil开发环境:拷贝一份我们之前的Keil工程模板“11_GPIO_LED”,然后将工程文件夹重命名为“CTSU_basic”,并进入该文件夹里面双击Keil工程文件,打开该工程。
29.4.2.2
FSP配置
首先打开“CTSU_basic”项目的FSP配置界面,接下来我们要在这个界面里配置芯片的引脚及其相应的功能。
双击configuration.xml打开配置界面:然后点开依次点击Stacks->New Stack->Cap Touch->TOUCH来配置CTSU模块。如图29_21。

图29-21选择CTSU模块
之后选择对应的引脚如图29_22。

图29-22CTSU引脚配置
配置完成之后可以按下快捷键“Ctrl+S”保存,最后点右上角的“Generate Project Content”按钮,让软件自动生成配置代码即可。
29.4.2.3
QE for Capacitive Touch配置
使用瑞萨的QE软件进行配置具有简洁、快捷、方便的特性,易于开发者进行开发。我们点击e2 studio上方的Renesas Views之后依次点击Renesas QE->Cap Touch Main(QE)。
注解
如果找不到Cap Touch Main(QE)我们可以在Renesas Views->Renesas Software Installer中搜索安装,如果是新版e2 studio安装CapTouch工具后,则在Renesas QE中选择CapTouch Workflow(QE)。
打开之后我们进入到电容按键的配置界面,然后我们按着前后顺序依次点击。

To Selecta Project选择项目:
我们点击To Selecta Project选择我们需要选择项目。
To Preparea Configuration准备配置:
我们点击Modify Configuration之后我们来到这个界面:

我们点击button之后移到中间,如图所示。

之后我们双击button进行调节,Touch Sensor选择电容按键,Resistance[ohm]选择电容按键的电阻值。
Start Tuning开始调谐:
在我们的开发板上面插上J-Link调试器之后,我们点击Start Tuning开始调谐。系统会自动的搭建需要配置的文件最终会来到这样的一个界面。

这个时候我们触碰开发板上的电容按键并且按住不松手,之后我们随便点击键盘上的按键。

后跳转到最后的一个界面,点击Continuethe Tuning Process

这个时候我们的配置文件就配置好了
错误解决
如果Start Tuning后出现下面的错误时:

需要打开调试器设置:

取消勾选后重新调试:

之后如果出现对话框,则点击“Yes”,调试通过后关闭调试连接,重新点击Start Tuning即可。
Output Parameter Files输出参数文件:
我们点击Output Parameter Files输出参数文件,之后会生成如下图一样的文件夹,这个就是QE为我们配置好的文件。

它会在左边的项目文件管理中生成一个qe_gen文件夹,其中里面包涵一些电容按键配置文件其中包括qe_touch_define.h、qe_touch_config.h、ge_touch_config.c这三个文件。

注解
在我们没有点击start Tuning进行调谐此时Output Parameter Files按钮显示灰色,这个时候我们是点击不了Output Parameter Files输出参数文件,我们可以先点击start Tuning进行调谐后进行参数文件的输出。
Show Sample展示示例:

我们点击Show Sample这里面有电容按键的示例代码,之后我们点击Outputtoa File,它会在qe_gen文件夹里生成qe_touch_sample.c这样的一个文件。文件qe_touch_sample.c也就是我们编写程序代码的地方。

之后我们点击qe_touch_sample.c开始我们对电容按键程序的编写。
Show Views:
第一步我们在hal_entry.c里添加代码,使得我们能在图形化界面正常的显示。
列表1:主函数
左右滑动查看完整内容
voidhal_entry(void)
{
qe_touch_main(); //跳转到电容按键函数
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif}
第二步我们进行编译和调试。
第三步我们回到CapTouch Main(QE)配置界面,之后点击Show Views开始我们的监视并且查看我们是否配置好了相应的代码。

当手指触碰开发板上的电容按键时,如果图像能出现手指的模样,说明我们的配置成功了。并且我们可以在右边看到电容按键的阈值和当前电容按键的状态。

之后我们就可以开始对电容按键程序的编写了。
29.4.2.4
qe_gen文件
列表2:QE电容按键程序
左右滑动查看完整内容
voidqe_touch_main(void)
{
fsp_err_t err;
/* 打开触摸中间件*/
err = RM_TOUCH_Open(g_qe_touch_instance_config01.p_ctrl, g_qe_touch_
,→instance_config01.p_cfg);
if (FSP_SUCCESS != err)
{
while (true) {}
}
/* 主循环*/
while (true)
{
/* 电容按键扫描开始*/
err = RM_TOUCH_ScanStart(g_qe_touch_instance_config01.p_ctrl);
if (FSP_SUCCESS != err)
{
while (true) {}
}
while (0 == g_qe_touch_flag) {}
g_qe_touch_flag = 0;
/* 获取当前电容按键的状态*/
err = RM_TOUCH_DataGet(g_qe_touch_instance_config01.p_ctrl, &button_
,→status, NULL, NULL);
if (FSP_SUCCESS == err)
{
if(button_status==1)
{
LED3_ON;
}
else
{
LED3_OFF;
}
}
/* 因为这是一个临时进程,所以您可以自己重新创建一个等待进程*/
R_BSP_SoftwareDelay(TOUCH_SCAN_INTERVAL_EXAMPLE, BSP_DELAY_UNITS_
,→MILLISECONDS);
}
}
电容按键点亮LED灯
29.4.2.5
主函数
列表1:主函数
左右滑动查看完整内容
voidhal_entry(void)
{
qe_touch_main(); //跳转到电容按键函数
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
我们通过轮循的方式操作qe_touch_main函数,来完成我们相应对电容按键的操作。
29.4.3
Keil–电容按键
29.4.3.1
FSP设置
首先打开“CTSU_basic”项目的FSP配置界面,接下来我们要在这个界面里配置芯片的引脚及其相应的功能。
双击configuration.xml打开配置界面:然后点开依次点击Stacks->New Stack->CapTouch->TOUCH来配置CTSU模块。

之后选择对应的引脚

配置LED引脚

配置完成之后可以按下快捷键“Ctrl+S”保存,最后点右上角的“Generate Project Content”按钮,让软件自动生成配置代码即可。
29.4.3.2
复制文件
我们在Keil里面创建一个qe_gen文件夹,将之前在e2 studio项目里生成的qe_gen文件夹里的文件复制到Keil的文件夹里面,之后我们将文件目录导入到项目里。

第一步我们点击Options for Target ‘Target 1’,将添加的文件夹目录导入到工程里

第二步我们点击Manage Project Items,设置Keil的项目文件管理。这个时候我们的文件目录为:
列表4:文件结构
CTSU_basic ├─ .settings ├─ Listings ├─ Objects ├─ qe_gen │ ├─qe_touch_config.c │ ├─qe_touch_config.h │ ├─qe_touch_define.h │ └─qe_touch_sample.c ├─ ra ├─ ra_cfg ├─ ra_gen ├─ RTE └─ scriptsrc
29.4.3.3
主函数
列表5:主函数
左右滑动查看完整内容
voidhal_entry(void)
{
qe_touch_main(); //跳转到电容按键函数
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
总结来说就是将电容按键生成的文件复制到Keil工程文件夹里面。
29.4.4
下载验证
用USB线连接开发板的“USB转串口”接口和电脑,把编译好的程序下载到开发板,我们触摸电容按键并查看LED灯是否有反应。
全部0条评论
快来发表一下你的评论吧 !