以前一直从单片机做主机,给从设备发数据,而且从设备一般都是EPROM之类。
现在需要用单片机做IIC从机,其它设备做IIC主机。而单片机可能从其它通讯方式(比如蓝牙)收到数据,然后通过IIC接口传给主机。(类似蓝牙串口透传,但是现在接口不是串口而是IIC接口)。
我的想法是当单片机(IIC)从蓝牙接收到数据,就放到buf中,等待主机的轮询读取,
IIC主机通过轮询方式,读单片机(IIC从机)的数据,但是有个疑惑:
IIC主机读从机设备,NOACK 是IIC主机发的,而IIC主机不知道从机有多少可以读取的数据,如何解决?
上司说我的思路不对,他认为我的IIC方式是读取EEPROM的方式 (即:开始 从地址 应答 数据 非应答 停止),而现在IIC主从都是单片机,不需要这样的规则,由我们自己定。
我疑惑了,IIC就是这么规定的通讯方式,难道我还能自己定别的方式吗?而芯片的IIC控制器也是需要达到这样的约束才能实现,我如何自己定义?自己定义那就不叫IIC总线了。奈何上司不这么认为,难道我错了? |