完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
HARMony:1.09设备:PIC32MZ2048EFH064Harmony I2C配置:使用所有默认设置,参见附件。MPLAB:3.45MyI2C接口非常简单。一个PIC32主控器,连接到一个I2C从机。我一直很难让我的I2C功能。我一直在清除代码,直到我能够得到一些我可以观察到的SCL和SDA位。我剥离的回码是从主机到从属设备的3字节的简单传输。然后,我计算发送的比特数,期望看到24个SCL转换以及3个字节的数据,并能够重建我发送的内容。这是一个轮询实现,我认为它是基本的/简单的,因此它应该运行。命令是:DVRII2C*OPEN()DRVIII2CX传输():我得到的是9 SCL跃迁@ SCL 50 kHz速率,见附件。我期待24个SCL过渡+一些额外的。在数据中,我观察到8个LO位和1个HI位。这与我所期望的不匹配,因此我陷入了困境,需要帮助来解决这个问题。我注意到的另一件事情是,DRV_I2C_BUFFER_EVENT_COMPLETE从来没有发生过,因为我的if语句只有在添加了DRV_I2C_BUFFER_EVENT_ERRO的测试条件之后才会为真。R. So告诉我,对于我所有的传输,我都在一个无休止的循环中,我得到了一个EVEtiON错误。但我不知道为什么或怎么可能。我的循环在每次I2C传输之间有0.5秒的暂停时间,所以,我没有重写一些缓冲区,也没有强调接口,它有足够的时间发送缓冲区。这是我第一次使用I2C接口来工作,因此我努力使代码同时工作,试图把我的观察结果解释回我所期望的,并且到目前为止我的观察结果与我的期望不符。这个打开了portAPP_RESULT LI2C_I2C_I2C_I2C_MasterInit(无效){/*打开I2C端口,如果没有之前的句柄*/如果(li2cData.drvI2CHandle_2CHandle_Master==DRV_HANDLE_HANDLE_INVALIVALIID ==DRV_2cData.drvI2C2C_I2C_I2C_I2C_I2C_I2C_I2C_I2C_I2C_I2C_I2C_I2C_I2C_I2C_I2C_I I2C_I2C_I2C_I I2C_I I2C_I2C_I2C_I d自己的:APP_RESULT LI2C_I2C_I2C_2C_I2C_Master读数据(APP_UINT16device地址,//APP_UINT16设备地址,//I2C设备地址22222222C设备地址.//I2C装置地址APP_UINT16设备地址APP_UINT_UINT16字节sToToW写入:APP_APP_APP_UINT_UI_UINT8*rxxdataPNT8*rXXXXXXXXPtr,//Byte字节字节字节字节字节字节为写入写入的Byte写(APP_APP_UI_UIUI_UIUIUIUIUIUINT8._UIUINT8*UIUIUIUIUINT8.*APP_UINT16字节To读取)//字节读取{uint8_tTX缓冲器_1.[].{uint8_tTX缓冲器_1[]]=“\\\\x45""1M";1M;\\\\\\x4545454545xx454545451M""1M""1M字节读取读取3;字节读取读取li2cData.drvI2CTxRxBufferHandle)==DRV(LI2C_BUFFER_2C_BUFFER_EVENT_COMPLET_COMPLETE)|_|LI2C_Check_转移_转移状态状态(li2cData.drvI2CHandle_Mas,li2cData.drvI2CHandle2CHandle_Mas_Mas_Master_Master_Master_Master_Mas_Master_Masandle_Masd2cData.d2cData.d2cData.drvI2cData.drvI2c数据数据数据drvI2222CCCdrvI2CCCCCCCCCDrvI25252525252525252525252525252525252525252525252525CCCCCCC16_t)deviceAddress,[0],numOfBytes,[NULL];.(APP_OK);}.(APP_ERROR_I2C_FAIL);}
|
|
相关推荐
2个回答
|
|
嗨,自从我发布这个帖子以来,问题似乎是我与主人和奴隶的互动,并且我不完全理解界面。我会把重点放在修复,所以没有必要回应。吉姆,
|
|
|
|
嗨,关于I2C信令的一些基本知识。I2C协议检查信令是否按预期进行,包括硬件和软件。I2C信令的第9位是Ac.。这样安排使得I2C从应答器在ACK时钟周期内将SDA线拉低。如果没有具有正确地址的I2C从应答,SDA线上的拉升电阻器将使SDA线变高。这就是在逻辑分析器捕获中所看到的。然后驱动程序将停止发送字节,并发送I2C停止信号序列。在停止信号完成后,SCL和SDA线都将是高逻辑电平。代码中是否有断点使开始和停止信号不可见?所有0位的I2C地址是一个特殊的保留地址:General Call,这可能不是您想要的。
|
|
|
|
只有小组成员才能发言,加入小组>>
5136 浏览 9 评论
1987 浏览 8 评论
1917 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3155 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2215 浏览 5 评论
702浏览 1评论
593浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
476浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
608浏览 0评论
503浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 02:29 , Processed in 1.102347 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号