PIC12f1822单片机的I2C通信问题

[复制链接]
 楼主| a511484095 发表于 2020-7-18 13:51 | 显示全部楼层 |阅读模式
这是我从microchip的官网下载的I2C代码。展示了我有疑惑的一部分。

    Send_I2C_StartBit();                    // send start bit
    Send_I2C_ControlByte(block_address,0);  // send control byte with R/W bit set low
    Send_I2C_Data(word_address);            // send starting address
    Send_I2C_Data('M');             // send data byte 1
    Send_I2C_Data('i');             // send data byte 2
    Send_I2C_Data('c');             // send data byte 3
    Send_I2C_Data('r');             // send data byte 4
    Send_I2C_Data('o');             // send data byte 5
    Send_I2C_Data('c');             // send data byte 6

请教一下各位大佬。
为什么发完从机地址之后,还要将起始地址发过去。。
    Send_I2C_Data(word_address);            // send starting address
去掉可以吗?
hu9jj 发表于 2020-7-18 14:57 | 显示全部楼层
关键要看您的从机协议,如果其首先要接收要操作的地址,那您就不能省略这一步。
 楼主| a511484095 发表于 2020-7-18 16:13 | 显示全部楼层
hu9jj 发表于 2020-7-18 14:57
关键要看您的从机协议,如果其首先要接收要操作的地址,那您就不能省略这一步。 ...

了解!谢谢!
antusheng 发表于 2020-7-20 23:29 | 显示全部楼层
看从机的通信协议,这种IO模拟很容易。
zeshoufx 发表于 2020-7-21 08:54 | 显示全部楼层
从程序看,应该是字符‘M’、‘i’、‘c’、‘r’、‘o’、‘c’写入从机的地址,,,应该不可以去掉
 楼主| a511484095 发表于 2020-7-21 10:03 | 显示全部楼层
antusheng 发表于 2020-7-20 23:29
看从机的通信协议,这种IO模拟很容易。

谢谢
 楼主| a511484095 发表于 2020-7-21 10:04 | 显示全部楼层
antusheng 发表于 2020-7-20 23:29
看从机的通信协议,这种IO模拟很容易。

新手,略感困难
 楼主| a511484095 发表于 2020-7-21 10:05 | 显示全部楼层
zeshoufx 发表于 2020-7-21 08:54
从程序看,应该是字符‘M’、‘i’、‘c’、‘r’、‘o’、‘c’写入从机的地址,,,应该不可以去掉 ...

从机地址好像是包含在第一次发送的数据里边的。。
CoolSilicon 发表于 2020-7-22 10:47 | 显示全部楼层
这个只是demo程序..

所发送的数据不是I2C协议所必需的.

你可以根据自己的需求, 和你所通信的主从的要求,自定义数据内容的.

 楼主| a511484095 发表于 2020-7-22 11:17 | 显示全部楼层
CoolSilicon 发表于 2020-7-22 10:47
这个只是demo程序..

所发送的数据不是I2C协议所必需的.

了解~!谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

126

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部