完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,在我们的一个项目中,我们已经使用了USB P5807集线器和PIC32 MX575 MCU。根据该集线器UB5807的数据表,我们已经实现了读取其寄存器的I2C序列。我们在必要的时候从轮毂上取货。但是不能读取寄存器的值!有人观察到这种行为吗?谢谢你,潘独让
|
|
相关推荐
9个回答
|
|
|
可能是源代码第42行的一个bug…
|
|
|
|
|
|
众所周知,这种组合将带来勘误表1206。如果你坚持下去,你很可能会烧掉一些东西。
|
|
|
|
|
|
????!!!行号码?
|
|
|
|
|
|
这些是笑话。为荒谬含糊的问题描述提供荒谬的具体帮助。
|
|
|
|
|
|
正确的回答是“但是我没有发布任何源代码”。然后一个灯泡应该在你的脑袋里发出,说:“如果我不费心张贴它,它们怎么会在我的代码中发现问题呢?”……”
|
|
|
|
|
|
哈哈哈…我明白你的意思。同时,我知道我还没有发布代码。但是在发布代码之前,我的想法首先是问:“有人经历过这个吗?”无论如何,这是我的函数来读取register:/*void USB_ReadData(无符号整地址,Byte*data,Byte长度)*SB_读数据(无符号的int地址,B字节*数据,字节长度){I2C_Master_Star(){I2C_Master_Star();//I2C主寄主发送开始条件I2C主发送开始条件I2C主发送开始条件I2C_Master_Master_发送开始条件I2C_Master_Write(HUB_I2C_I2C_Write_Write_Write_Write_写入_写入_WWWW写地址I2C_Master_写入(HUUUB_I2C_I2C_I2C_I2C_写入_W写_WW写_W写_WWWWW写_Write_写入_写入_WADD_WRITE_DATA&0xFF);//写LSB写地址I2C_Master_Write(WRITE_LENGTH);//写数据长度I2C_Master_Write(READ_CFG_DIR);//发送0x01以设置读取数据I2C_Master_Write(ONE_BYTE)的方向;//发送字节数以读取I2C_Master_Write(ONE_BYTE);//读取配置寄存器r I2C_Maste r_Write(address>>8);//发送用于读取MSB I2C_Maste r_Write(address&0xFF)的寄存器地址的MSB;//发送用于读取MSB Config_Acess_Command()的寄存器地址的LSB;//访问配置命令I2C_Maste r_RepeatedStart();//发送重复启动条件I2C_Maste写入(HUB_I2C_Write_写入_Addr);//发送HUB地址I2C_Master_Master_写入(USB_RAM_RAM_RAM_RAM_ADADAD_RE_READ_AD_AD_AD_AD_ADAD_READ_READ_DAAD_DAAD_DAAD_DAAD_DADADA_DADADA_DADA_以及放大器;0xFF);//发送HUB地址IUB地址I2C地址I2C地址I2C_Mas_Master_Master_Master_Master_重复重复开始读取_重复开始();//发送存储器地址LSB存储器地址的读取存储器地址LSB存储器地址吃掉的起始状态I2C_Master_Write(HUB_I2C_Read_Addr);//发送HUB读取地址(无符号int i=0;i<.;i++){data=I2C_Master_Read(data);//从HUB读取数据直到指定的传递长度}I2C_Master_Stop();}在通信中的所有必要点都有ACK。但是从UB5807的内部寄存器读取的数据(让我们假设供应商ID)是“0x00”!希望这没问题,谢谢你,潘独让
|
|
|
|
|
|
是否将正确的参数传递给I2C*Mistar Read()函数?我没有使用过这个库,但我猜这个参数应该是一个布尔值,用来指示这是否是循环的最后一次读取。(要求I2C Masters对最后一个进行ACK每个字节EXCEPT)。你必须在停止之前发送一个NACK,这个参数可能是控制的。
|
|
|
|
|
|
谢谢你的回复。-I2C.MaxMyRead有“unChar char”类型参数。-ACK在收到的每个字节之后发送。它在I2C*Mistar读()函数中处理。但是,正如您所说,主机应该在停止之前的最后一个字节之后给出NACK。我认为当发送ACK时,除了最后一个字节之外,应该有从从机(HUB)收到的正确的字节。
|
|
|
|
|
|
这个参数是如何处理的?什么条件发送ACK?零?非零?我怀疑你的代码是真的,数组索引被论坛解释为“开始斜体”,因为你没有在代码周围放置代码标签。如果是,那么它就预先发送数组内存中发生的任何东西。你真的应该修复和复试。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1122浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 21:50 , Processed in 0.736852 second(s), Total 88, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4287