1.IIC总线当主机为接收方时主机需要应答,应答时SCL上的电平应置高还是置低?
2.为什么有些程序不写把主机应答一部分省略掉了?
IIC总线主机应答问题
答案:2 悬赏:60 手机版
解决时间 2021-02-22 11:03
- 提问者网友:遁入空寂
- 2021-02-21 13:53
最佳答案
- 五星知识达人网友:野味小生
- 2021-02-21 14:45
应答是电平置为高,相当于握手信号。
主机默认有应该机制,默认就可以,不需要显式调用。
主机默认有应该机制,默认就可以,不需要显式调用。
全部回答
- 1楼网友:风格不统一
- 2021-02-21 15:32
1、首先iic通信要分清主机与从机的关系,在主机对从机进行写操作时,一般是在传送完一个数据之后单片机就进入检测应答信号状态:先将两个脚置位sda=1;scl=1;然后在一定时间内不断检测sda脚的电平状态,比如说你弄个循环for(i=255;i>0;i--){..;if(...)break;...}进行不断判断,当sda的电平为低时就跳出循环,说明此时从机已经ack,就可说明是i2c器件拉低;如果为高时,则一直判断完整个循环,到最后还为高时,就说明没有应答。
2、写应答和读应答肯定有所区别的。写应答是在你读从机数据期间,当你接收到一个数据时,可以应答的(想继续通信就应答),就将sda复位(拉低),不想应答(想结束通信时)就置位(sda=1)。读应答则在主机写数据给从机期间,每当从机接收到一个数据就会应答一下(将数据sda线拉低),主机将不断检测sda线的电平,主机就是凭sda的电平状态才知道从机是否已经正确地接收了主机发送的数据。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯