如题,刚好要用到I2C器件,发现没有硬件支持.如果用GPIO端口模拟,软件硬件需要注意点什么呢?
比如是否需要用代码专门处理GPIO.模拟成开漏的方式?
我在博客园看到了一篇博客,博主说代码适用于ch573,ch579,但是我看代码里面有些单个函数的延时,明显超过了625us的一半时间,估计会引起蓝牙通信的问题吧?
有没有成熟的例子参考一下?
如题,刚好要用到I2C器件,发现没有硬件支持.如果用GPIO端口模拟,软件硬件需要注意点什么呢?
比如是否需要用代码专门处理GPIO.模拟成开漏的方式?
我在博客园看到了一篇博客,博主说代码适用于ch573,ch579,但是我看代码里面有些单个函数的延时,明显超过了625us的一半时间,估计会引起蓝牙通信的问题吧?
有没有成熟的例子参考一下?
573系列没有硬件IIC,只能软件模拟。
“超过了625us的一半时间”与625us这个数值没关系,与连接间隔有关。TMOS任务运行时间不超过连接间隔的一半就好。连接间隔需要主机与从机协商,可以调节,会体现在串口打印信息中。以从机例程连手机的BLE调试助手为例,连接间隔假设是80ms,运行软件模拟IIC的TMOS任务和其他TMOS逻辑加起来,不要在一次间隔期间超过40ms即可。
@TECH_JWCH573的BLE_UART当前设定的连接间隔是多久,逻辑需要加个LCD刷屏函数,占用时间比较久,不清楚是否要拆分成独立区域的刷新以减少LCD刷新handler的时间占用
连接间隔是需要主机与从机进行协商的,协商结果会在芯片打印信息中体现,16进制数,单位是1.25ms,如下图。
关于连接间隔,下面有篇博客以供参考。