From 92515cc299264a4540435f42e99508bcf7b1c88e Mon Sep 17 00:00:00 2001 From: whowechina Date: Tue, 29 Jul 2025 12:24:59 +0800 Subject: [PATCH] Reset buffer before reading MPR121 --- Production/Firmware/chu_pico.uf2 | Bin 167936 -> 167936 bytes firmware/src/mpr121.c | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Production/Firmware/chu_pico.uf2 b/Production/Firmware/chu_pico.uf2 index f2b9d1f7e7f1559eaf072baf842ca9e796e43293..27fe65b0ebb9e3d43124d1b14f2d460633d8cb0d 100644 GIT binary patch delta 20319 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 X@Q>XAWSj!_n(c9~gPM%HUk&;{A)sKh diff --git a/firmware/src/mpr121.c b/firmware/src/mpr121.c index a9aadee..b3e4ab7 100644 --- a/firmware/src/mpr121.c +++ b/firmware/src/mpr121.c @@ -5,6 +5,8 @@ */ #include +#include + #include "hardware/i2c.h" #include "mpr121.h" @@ -66,7 +68,7 @@ static void write_reg(uint8_t addr, uint8_t reg, uint8_t val) static uint8_t read_reg(uint8_t addr, uint8_t reg) { - uint8_t value; + uint8_t value = 0; i2c_write_blocking_until(I2C_PORT, addr, ®, 1, true, time_us_64() + IO_TIMEOUT_US); i2c_read_blocking_until(I2C_PORT, addr, &value, 1, false, @@ -147,6 +149,8 @@ static void mpr121_read_many(uint8_t addr, uint8_t reg, uint8_t *buf, int num) static void mpr121_read_many16(uint8_t addr, uint8_t reg, uint16_t *buf, int num) { uint8_t vals[num * 2]; + memset(vals, 0, sizeof(vals)); + mpr121_read_many(addr, reg, vals, num * 2); for (int i = 0; i < num; i++) { buf[i] = (vals[i * 2 + 1] << 8) | vals[i * 2]; @@ -155,7 +159,7 @@ static void mpr121_read_many16(uint8_t addr, uint8_t reg, uint16_t *buf, int num uint16_t mpr121_touched(uint8_t addr) { - uint16_t touched; + uint16_t touched = 0; mpr121_read_many16(addr, MPR121_TOUCH_STATUS_REG, &touched, 1); return touched; }