完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在用MIN51做I2C的从设备,用中断来读主设备数据,参考了官网里面有个例程(I2C_Software_GPIO),但是原程序里面里面设了四个设备地址,我的设备地址是0xa0,要怎么设置啊?
/* Set I2C 4 Slave Addresses */ I2C_SetSlaveAddr(I2C, 0, 0x15, 0); /* Slave Address : 0x15 */ I2C_SetSlaveAddr(I2C, 1, 0x35, 0); /* Slave Address : 0x35 */ I2C_SetSlaveAddr(I2C, 2, 0x55, 0); /* Slave Address : 0x55 */ I2C_SetSlaveAddr(I2C, 3, 0x75, 0); /* Slave Address : 0x75 */ 请问为什么要设四个从设备地址啊?还有作为从设备难道也要设置时钟吗? /* Open I2C module and set bus clock */ I2C_Open(I2C, 120); 我现在怎么设置都进不了中断,各路高手请指点一下,急盼大侠回复。 |
|
相关推荐
1个回答
|
|
56, 0);/* Slave Address : 0x56 */ I2C_SetSlaveAddr(I2C, 3, 0x75, 0);/* Slave Address : 0x75 */
这个例程设了四个从设备地址是因为这个例程演示了如何使用一个主设备去控制多个从设备,每个从设备有不同的地址。在你的应用中,只需要设置一个从设备地址,而不需要设置多个地址。 设置从设备地址的代码应该放在I2C从设备的初始化函数中,根据MIN51的官方文档,可以使用I2C_SetSlaveAddr()函数设置从设备地址。像下面这样使用: I2C_SetSlaveAddr(I2C0, 0, 0xA0, 0); // 设置从设备地址为0xA0 注:其中第二个参数是从设备地址的编号,应该设置为0,因为你只有一个从设备;第三个参数是从设备的地址值,即0xA0;第四个参数是读写模式,可以设置为0,因为默认为读模式。 最后,建议你阅读一下MIN51官方文档中有关I2C通信的章节,了解如何使用MIN51进行I2C通信。 |
|
|
|
只有小组成员才能发言,加入小组>>
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
2531 浏览 0 评论
3344 浏览 9 评论
3023 浏览 16 评论
3515 浏览 1 评论
9119 浏览 16 评论
1246浏览 3评论
637浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
627浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2376浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1940浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-26 15:52 , Processed in 0.582078 second(s), Total 45, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号