upxjxmdz 发表于 2025-2-10 15:33:40

为何 Touch_Init(); 初始化触摸模块 这条语句会导致IO口输出高电平

    Touch_Init();初始化触摸模块
    LED=0; //熄灭
以上2条语句在循环执行过程中,应该呈现LED熄灭,但是实际是微微亮

    LED=0; //熄灭
以上语句在循环执行过程中,应该呈现LED熄灭,实际也是熄灭的。

为何 Touch_Init();初始化触摸模块 这条语句会导致IO口输出高电平



void Touch_Init() {
    // 配置触摸通道0
    TSCFG1 = 0x0F;// 设置触摸按键的采样时间和时钟分频
    TSCFG2 = 0x01;// 选择触摸通道0
    TSCTRL = 0x80;   // 使能触摸按键模块
}

DebugLab 发表于 2025-2-10 15:52:40

触摸按键控制器在工作时,IO有微弱的模拟信号,可以导致LED微亮,这是正常的(正常的现象,但不是正常的工作状态)
作为触摸按键的IO需要设置为高阻,且不能在未打开LED分时扫描时接LED
如需使用LED分时扫描功能(仅当IO不够用时建议这样使用,如需要同时扫描多个触摸按键和驱动多位数码管还有其他电路需要使用很多IO,因软硬件复杂且可能影响触摸效果,不建议在IO充足的场合使用),有一些注意事项如图所示(数据手册截图,具体请查看数据手册)





upxjxmdz 发表于 2025-2-10 16:32:53

触摸按键控制器在工作时,我理解应该是触摸和LED复用的IO有微弱的模拟信号吧,但是我实际使用的LED端口为P4.5(它不是触摸端口),我用的触摸端口为P1.0

乘风飞扬 发表于 2025-2-10 18:51:17

upxjxmdz 发表于 2025-2-10 16:32
触摸按键控制器在工作时,我理解应该是触摸和LED复用的IO有微弱的模拟信号吧,但是我实际使用的LED端口为P4 ...

最好提供能复现问题的最小化项目文件,例如只包含会产生问题的相关初始化程序跟主循环程序,这样才好分析。
页: [1]
查看完整版本: 为何 Touch_Init(); 初始化触摸模块 这条语句会导致IO口输出高电平