打印

PIC12f1822单片机的I2C通信问题

[复制链接]
950|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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模拟很容易。

使用特权

评论回复
5
zeshoufx| | 2020-7-21 08:54 | 只看该作者
从程序看,应该是字符‘M’、‘i’、‘c’、‘r’、‘o’、‘c’写入从机的地址,,,应该不可以去掉

使用特权

评论回复
6
a511484095|  楼主 | 2020-7-21 10:03 | 只看该作者
antusheng 发表于 2020-7-20 23:29
看从机的通信协议,这种IO模拟很容易。

谢谢

使用特权

评论回复
7
a511484095|  楼主 | 2020-7-21 10:04 | 只看该作者
antusheng 发表于 2020-7-20 23:29
看从机的通信协议,这种IO模拟很容易。

新手,略感困难

使用特权

评论回复
8
a511484095|  楼主 | 2020-7-21 10:05 | 只看该作者
zeshoufx 发表于 2020-7-21 08:54
从程序看,应该是字符‘M’、‘i’、‘c’、‘r’、‘o’、‘c’写入从机的地址,,,应该不可以去掉 ...

从机地址好像是包含在第一次发送的数据里边的。。

使用特权

评论回复
9
CoolSilicon| | 2020-7-22 10:47 | 只看该作者
这个只是demo程序..

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

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

使用特权

评论回复
10
a511484095|  楼主 | 2020-7-22 11:17 | 只看该作者
CoolSilicon 发表于 2020-7-22 10:47
这个只是demo程序..

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

了解~!谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

126

帖子

0

粉丝