打印
[开发工具]

【新定义MCU开发板测评】NBK-RD8x3x 核心板+EBS003 IOT扩展板按键触控

[复制链接]
1071|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
今天捣鼓EBS003按键触控。
原理图:








代码:主程序:
#include "SC_Init.h"        //MCU Init header,Include all IC resource headers
#include "SC_it.h"
#include "..\Drivers\SCDriver_list.h"
#include "HeadFiles\SysFunVarDefine.h"
/**************************************Generated by EasyCodeCube*************************************/

/*************************************.Generated by EasyCodeCube.************************************/
/*****************************************************************************************************
* Function Name: main
* Description  : This function implements main function.
* Arguments    : None
* Return Value : None
******************************************************************************************************/
void main(void)
{       
    /*** MCU init***/
    SC_Init();
    /*<Generated by EasyCodeCube begin>*/
    /*<UserCodeStart>*//*<SinOne-Tag><9>*/
    TouchKeyInit();
    /*<UserCodeEnd>*//*<SinOne-Tag><9>*/
    /*<UserCodeStart>*//*<SinOne-Tag><10>*/
    while(1)
    {
        /*<UserCodeStart>*//*<SinOne-Tag><14>*/
        if(SOCAPI_TouchKeyStatus & 0x80)
        {
            /*<UserCodeStart>*//*<SinOne-Tag><22>*/
            SOCAPI_TouchKeyStatus &= 0x7f;
            /*<UserCodeEnd>*//*<SinOne-Tag><22>*/
            /*<UserCodeStart>*//*<SinOne-Tag><18>*/
            exKeyValueFlag = TouchKeyScan();
            /*<UserCodeEnd>*//*<SinOne-Tag><18>*/
            /*<UserCodeStart>*//*<SinOne-Tag><35>*/
            UserCode();
            /*<UserCodeEnd>*//*<SinOne-Tag><35>*/
            /*<UserCodeStart>*//*<SinOne-Tag><36>*/
            TouchKeyRestart();
            /*<UserCodeEnd>*//*<SinOne-Tag><36>*/
        }
        /*<UserCodeEnd>*//*<SinOne-Tag><14>*/
    }
    /*<UserCodeEnd>*//*<SinOne-Tag><10>*/
    /*<Generated by EasyCodeCube end>*/
}

用户代码:
#include "SC_Init.h"
#include "SC_it.h"
#include "..\Drivers\SCDriver_list.h"
#include "HeadFiles\SysFunVarDefine.h"
/**************************************Generated by EasyCodeCube*************************************/
/******************************************************************************************************
*用于存放键值的变量(32bit长度的变量)1.该变量0-30bit对应TK键值TK0-TK30的状态:有
*键值则对应bit会置1,无键则对应bit为0
******************************************************************************************************/
unsigned long exKeyValueFlag = 0;
////用户应用层函数编写(可修改)1.键值处理逻辑2.应用层逻辑实现
void UserCode()
{
    /*<UserCodeStart>*//*<SinOne-Tag><23>*/
        if((exKeyValueFlag&0x00000004)==0x00000004)
                GPIO_WriteHigh(GPIO1,GPIO_PIN_4);
        else
                GPIO_WriteLow(GPIO1, GPIO_PIN_4);
        if((exKeyValueFlag&0x00000008)==0x00000008)
                GPIO_WriteHigh(GPIO1,GPIO_PIN_5);
        else
                GPIO_WriteLow(GPIO1, GPIO_PIN_5);
    /*<UserCodeEnd>*//*<SinOne-Tag><23>*/
}
两个触控按键。按下左边的触控按键,L1灯亮,释放灯灭。按下右边的触控按键,L2灯亮,释放灯灭。
效果图:

使用特权

评论回复
沙发
heisexingqisi| | 2023-1-25 20:35 | 只看该作者
按键测试。

使用特权

评论回复
板凳
Wordsworth| | 2023-4-21 12:46 | 只看该作者
if((exKeyValueFlag&0x00000004)==0x00000004)
这段代码可以精简一点,写成这样 if(exKeyValueFlag&0x00000004)也是可以的

使用特权

评论回复
地板
比神乐|  楼主 | 2023-4-22 07:04 | 只看该作者
Wordsworth 发表于 2023-4-21 12:46
if((exKeyValueFlag&0x00000004)==0x00000004)
这段代码可以精简一点,写成这样 if(exKeyValueFlag&0x0000 ...

你说得对

使用特权

评论回复
5
nomomy| | 2023-5-5 22:21 | 只看该作者
扩展触模显示器可触控吗               

使用特权

评论回复
6
youtome| | 2023-5-5 23:35 | 只看该作者
物理按键和触控按键有什么区别?              

使用特权

评论回复
7
albertaabbot| | 2023-5-7 16:07 | 只看该作者
到底是触控按键,还是物理按键              

使用特权

评论回复
8
lzbf| | 2023-5-7 16:21 | 只看该作者
辅助触控怎么用              

使用特权

评论回复
9
比神乐|  楼主 | 2023-5-7 20:45 | 只看该作者
albertaabbot 发表于 2023-5-7 16:07
到底是触控按键,还是物理按键

触控按键

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

436

主题

3424

帖子

7

粉丝