完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
对于那些使用中断来处理I2C动态位爆炸驱动程序的人来说,这只是个好消息(我发现我需要使用位爆炸驱动程序,因为PIC32MZ0512efe064的转速A3现在需要位爆炸实现)。文件drv_i2c_bb.c,它花了我大约10小时来跟踪和解决(我想我今天可能已经获得了一些免费样本:)。1)最重要的防止多于一个的WriteRead(因为队列In已填充):i2c驱动程序在事务完成后永远不会重置i2cState,因此,我认为,用户需要在情况I2C_SDA_HIGH_STOP_CHECK(大约行836)之后添加类似下面的行I2Cynull状态;为另一个写读重置I2C状态…如果(_DRV_I2C_IsQueueEmpty(dObj)==true){PLIB_TMR_Stop(dObj->tmrSource);//stop并清除定时器PLIB_TMR_.16BitClear(dObj->tmrSource);Nop();i2cState=I2C_NULL_STATE;//用户必须在成功事务之后添加-以重置i2cState}...和2)行744,我不希望i2c从地址,作为多字节读取中的第一个字节[0]返回,而硬件不发送该字节,因此为了排除返回给用户的从地址字节,返回读取字符串中的从地址字节在下面的行中更改>0到>1:if((lBufferObj->.==DRV_I2C_OP_READ)&&a mp;(lBufferObj->.ltransfers.>1)*lBufferObj->rxBuffer++=I2CReadData;3)可能由我自己的配置(3 I2C驱动程序I2C3、1和5)导致的另一个小的第三个错误是用户需要添加:._MODE_IDX2 DRV_I2C_MODE_MASTERdefine DRV_SCL_PORT_IDX2 PORT_CHANNEL_Fdefine DRV_SCL_PIN_POSI._IDX2 PORTS_BIT_POS_5define DRV_SDA_PORT_IDX2 PORT_CHANNEL_Fdefine DRV_SDA_PIN_POSIX2 PORTS_BIT_PORTS_4_4
|
|
相关推荐
2个回答
|
|
对于使用3位I2C模块运行3个I2C从设备的人来说,使用Bang-Bang-Ongor驱动程序的另一个问题是,我发现绝对需要分别读取每个从-所以,例如,我的读定时器是每10ms,使用100KHz,每个加速度计I2C读取14。TES在2ms以下,所以我需要一个:DelayMs(2);在3次调用DRVIII2CyRealSuffEnter()之后,使用上面的三个修正,和这个2毫秒延迟-我所有的3个模块与BIT BAR驱动程序一起工作至少10-20秒-我还没有测试更长的周期。
|
|
|
|
另外,根据上述变化,使用100khz每10ms从3个I2C加速度计(I2C模块1、3和5)获得14字节,使用Harmony 2.01b位爆炸码,在PIC32MZ0512EFE064 revA1和revA3上的每个读数之间暂停2ms,是稳定的——在连续5分钟之后,停止测试S样品。
|
|
|
|
只有小组成员才能发言,加入小组>>
5036 浏览 9 评论
1935 浏览 8 评论
1872 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3088 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2157 浏览 5 评论
597浏览 1评论
465浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
493浏览 0评论
395浏览 0评论
IPECMD命令烧录AVR128DA48芯片,报找不到芯片错误
874浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-3 00:16 , Processed in 1.188363 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191