官方大大 请教 CH579断开蓝牙后协议栈死机的问题 RTC如何实时更新当前时间。

CH579F 断开蓝牙后协议栈死机的问题 。

是否是ram内存不够导致的?多写了一些程序。就会有时候会导致断开连接后卡死的问题。程序中没有开睡眠。死在如下图。

image.png

配置如下

image.png

image.png

map文件如下

image.png

有的时候断开后一直在这两种状态切换。

image.png



 RTC如何实时更新当前时间。从App更新系统时间 后蓝牙断开。调用如下函数

RTC_InitTime( time->hour, time->minute,time->second ); //RTC时钟初始化当前时间


这芯片就这样了,蓝牙协议栈启动后如果蓝牙处于连接状态,更新RTC,蓝牙必定会断开连接,延时更新可接受的话就延时更新吧,需要实时更新必定无解,就外挂RTC芯片吧


芯片就CH57x 系列芯片就一个 rtc, 这意味着蓝牙已经占用,如果同时 拿来做日历,涉及到修改硬件RTC时间的话, 会让BLE的状态机异常, 

这里提供两种方法你可参考:

1, 获取时间通过 硬件值时间戳+有符号offset值方式, 然后再换算成 具体日期,

修改时间,只要把日期换算成时间戳,然后调整offset值即可.


附件提供一个示例: 

icon_rar.gifPeripheral_utc_test.zip(解压后放到官网例程的>EXAM>BLE 文件夹即可)

image.png


2,不立刻进行修改,仍然是记录下偏差值,当蓝牙断开后,再修改,

修改完硬件RTC值后,额外执行    

TMOS_TimerInit(0);



这个例程CH573也能用吗?可以发一份mounriver版本的例程给我吗?谢谢! 邮箱:个人信息保护,已隐藏


可以参考579的进行移植


只有登录才能回复,可以选择微信账号登录