1. 确保I2C总线的SCL和SDA引脚没有被其他组件占用。您可以在代码中检查是否有其他组件使用了相同的引脚。
2. 在初始化I2C总线和OLED显示时,确保使用了不同的I2C端口。例如,您可以使用I2C_NUM_0和I2C_NUM_1。
3. 在调用oled_show_str函数之前,确保BLE GATT_SERVER已经初始化并运行。您可以尝试在BLE GATT_SERVER初始化完成后再调用OLED显示函数。
4. 检查您的代码中是否有任何可能导致死锁或资源竞争的部分。例如,确保在调用OLED显示函数时,没有阻塞BLE GATT_SERVER的运行。
5. 如果问题仍然存在,您可以尝试使用ESP-IDF的日志系统来记录BLE GATT_SERVER和OLED显示的运行状态,以便更好地了解问题所在。
6. 另外,您还可以尝试降低OLED显示的刷新频率,以减少对I2C总线的占用。
1. 确保I2C总线的SCL和SDA引脚没有被其他组件占用。您可以在代码中检查是否有其他组件使用了相同的引脚。
2. 在初始化I2C总线和OLED显示时,确保使用了不同的I2C端口。例如,您可以使用I2C_NUM_0和I2C_NUM_1。
3. 在调用oled_show_str函数之前,确保BLE GATT_SERVER已经初始化并运行。您可以尝试在BLE GATT_SERVER初始化完成后再调用OLED显示函数。
4. 检查您的代码中是否有任何可能导致死锁或资源竞争的部分。例如,确保在调用OLED显示函数时,没有阻塞BLE GATT_SERVER的运行。
5. 如果问题仍然存在,您可以尝试使用ESP-IDF的日志系统来记录BLE GATT_SERVER和OLED显示的运行状态,以便更好地了解问题所在。
6. 另外,您还可以尝试降低OLED显示的刷新频率,以减少对I2C总线的占用。
举报