如果使用 I2C (更新 OLED 显示屏)发送一些数据(每秒一次),基于 cc2541的外围设备将断开与中央的连接。
I2C 当前未使用 IRQ 或 DMA。
是否有一个参数允许在断开连接之前有更多时间输入用户代码?
基于 IRQ 的 I2C 通信是否会防止断开连接?
其他选项?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我已经尽可能打破了沟通,同时仍然保持了画面的完整性 。
我可以看到一些 连接参数可以调整。 我仍然使用默认值,即:
#define default_desed_min_CONN_interval 200
#define default_desed_MAX_CONN_interval 1600
#define default_desed_Slave 延迟1
#define default_desed_Slave 延迟 1.
#define default_desed_CONN_timeout 1000
每隔30秒交换一次中央外围设备信息,以便可以将参数更改为不那么严格?
有什么建议?
e2e.ti.com/.../AppTime_5F00_withI2c.zip
查看 我在其中使用 i2c 更新 LCD 的 TimeAppClockDisplay()函数
让我解释一下:
在围绕第168行开始的 timeapp_clock.c 中,我有以下代码:
// lcd_write_string( displayBuf,HAL_LCD_LINE_3);
UINT32时间差=osal_GetSystemClock();
如果(Time.minutes!=最后一分钟){
如果(lastminute!=100){
OSAL_START_TIMEEREx (timeAppTaskId,request_Time_FER_SERVER_EVT,1000);//每分钟一次
}
lastminute=Time.minutes;
// disp_hour (Time.hour);
// disp_minute (Time.minutes);
// OLED_blink_colon (Time.minutes);//这将在另一个 I2C 通信后序列化
}否则
OLED_blink_colon (Time.minutes);
}
如果我取消评论这些行
disp_hour (time.hour);
disp_minute (时间分钟);
然后我断开了连接
如果我只能打电话
OLED_blink_colon (Time.minutes);
它将 I2C 数据(约10字节)发送 到显示屏,连接将保持活动状态。
我不使用任何原始的 LCD 宏,如 lcd_write_string