单片机C程序:求下面这个单片机IIC总线C程序的详细解释

单片机C程序:求下面这个单片机IIC总线C程序的详细解释,第1张

IIC协议有讲的,每一次传输都有

起始

应答

错误

总线忙

非应答

等信号格式

NoACK就是非应答,他告诉iic传输的是最后一个数据,TestAck()

是发送一个字后等待从机应答

你这个例程应该是用io口模仿i2c,这里你没有给出sda的定义。我理解还有程序对其进行判断if(sda==1)输出编码‘1’else 输出编码‘0’。经过for循环8次就输出了一个完整的8bit二进制数。比如temp=num=0x25sda=0x25&0x80就等于‘0x00’,这时io口输出‘0’,temp=temp<<1数据左移1位temp此时等于0x4a,再&0x80,经过8次移位io口输出的数据应该是00100101=0x25,这个数据传输结束

首先,看看你发的器件地址是否正确

使用的port I/O方向是否修改 检测应当前,应将date pin 改为 input

clk date delay 时间是否足够


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12022280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存