完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嘿,大家好,所以我想用MPLAB X v3.55和XC8 v1.35让我的PIC18F45K22和一个广域APDS-9301-020环境光传感器通话,但是运气不太好。我以前没有用过I2C,这就是为什么我敢肯定我这边可能有点笨,但是花了几天时间。它撞到墙上了!我使用的是SDA2/SCL2,当它到达“getsI2C2”时,代码就会挂起,好像在等待接收但是没有听到任何回音。代码是基于XC8外围库生成的(明显基于所包含的示例代码,修改为光传感器芯片认为正确的代码)。SDA和SCL线路使用1K的拉出电阻。以下是与I2C通信相关的代码:如果有人能帮助发现错误/提供一些建议,我将不胜感激!多谢!
|
|
相关推荐
3个回答
|
|
|
每个初学者都会犯同样的错误。在发送从地址之后,您必须检查从地址是ACK还是NAK。这还因为文档不充分的plib库没有告诉您它们返回的是什么。在支持硬件主模式的PIC上,WriteI2C2函数返回ze如果ACK返回,则为ro;如果NAK返回,则为非零。如果获得NAK,则进行该操作毫无意义。(还可以检查SSPCON2bits变量中的ACKSTAT位,而不是函数返回值。)
|
|
|
|
|
|
这是我没有考虑过的一个要点!编辑:只是解决了,看到一些东西在网上,试图了解正在进行的ATM。
|
|
|
|
|
|
1K看起来很低。尝试4.7K或10K。它更有可能读取代码。您需要的是ge t s I2C,它负责ack/nack、读取、写入、重启和空闲,因此无论哪个device.void ge t s I2C(ubyte ID_I2C、ubyte Addr、void*Dest、int Len)都不必考虑它;TSI2C从16位ASMI.E.调用GETSI2C从C获得6个字节。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1097浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:06 , Processed in 0.789117 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2414