单片机/MCU论坛
直播中

而无返还

9年用户 1320经验值
擅长:光电显示
私信 关注

4127引脚分配顺序变化导致有一个按键不能触发的原因?

我这边在调试时,发现按键引脚分配顺序发生变化时会导致button1没有信号不能触发;如下截图;工程如附件,请帮忙看一下是什么原因,谢谢。
图一:button1不能触发,其他按键可以正常触发

图二,所有的按键都可以正常触发




                                                                                                                                                                                                                                                                                                                                                                                                

回帖(1)

夏日余晖

2024-2-4 14:49:23
只需要将CapSense_UpdateAllBaselines();和CapSense_ScanAllWidgets();的执行位置放到后边,但是不太明白为什么?还请给解释一下,谢谢。
我最初的代码在Tuner时由于引脚顺序不一样,会导致触摸Button1时的信号输出不一致如下图(下图引脚顺序在Tuner时,触摸Button1时无信号,其他按键正常):

原始代码:
static void CapSenseScanTask(void)
{
if(CapSense_SW_STS_BUSY== CapSense_IsBusy())
{
//按键扫描中,提前退出
return ;
}
// 调用API,扫描按键
CapSense_UpdateAllBaselines();
CapSense_ScanAllWidgets();
CapSense_ProcessAllWidgets();
Capsense_WidgetsValueGet();
。。。。。
}
调整代码执行顺序后恢复正常,调整后代码如下:
static void CapSenseScanTask(void)
{
if(CapSense_SW_STS_BUSY== CapSense_IsBusy())
{
//按键扫描中,提前退出
return ;
}
CapSense_ProcessAllWidgets();
Capsense_WidgetsValueGet();
。。。。。
// 调用API,扫描按键
CapSense_UpdateAllBaselines();
CapSense_ScanAllWidgets();
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分