完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在PIC32蓝牙启动工具包上工作。我试图通过I2C通信来测量温度传感器(BMP180)的温度,但是发生了什么。当我调试代码时,我知道它获得了主写的确认,但是当我试图从温度传感器读取数据时,它在接收器缓冲器上给出0x00。当我检查函数的接收字节可用/ /它给假。所以它不接收。请帮我简要说明这个问题。我正在做MPALB OrthNy的编程。我附上了下面的代码。
|
|
相关推荐
2个回答
|
|
嗨,你放弃了吗?或者当你提出问题时为什么不回答问题?您在原始消息中提供的代码似乎属于一个MPLAB X和协调项目,它是由Harmony Configurator创建的,用于生成I2C“静态驱动程序”的,并且我已经能够生成这样的项目以便能够使用您的app.c代码运行。f由和谐创建的DRV_I2C0_…(...)函数上的混淆和误导名称引起的问题。我使用MPLAB X v3.20、和谐1.06.02和XC32编译器v1.40在PIC32MX695F512H和MCP9801 I2C温度传感器上运行。在我看来,生成的文件drv_i2c_..c和.h中的函数并不是真正的驱动程序代码,而是一些外围接口函数,可以创建自己的驱动程序。在这方面,它与现在遗留的Plib.bool DRV_I2C0_MasterBusIdle()没有什么不同;这个函数不按照名称执行。它不知道I2C总线是否是空闲的。它的作用是检查和报告我们自己的主硬件执行的任何操作是否完成。在代码中的任何地方使用都是安全的。当主硬件准备接受下一个操作时,它将返回“true”。它与Harmony外围层库中的一个函数有关,该函数也类似地命名错误。rmony手册,所有建议在开始启动条件信令之前检查I2C总线是否为空闲,但是Harmony手册中建议的功能没有为此目的发挥作用。参见上面的paragaraph。除此之外,检查可以在MasterStart()f内执行,并且应该更好地在MasterStart()f内执行。功能。不用担心,I2C控制器中的硬件会一直检查,并且会立即拒绝启动它尚未准备好执行的任何操作。当发生这种情况时,I2C硬件将释放总线并在I2C状态寄存器中设置一位。然后,驱动程序软件必须弄清楚出什么问题。bool DRV_I2C0_WaitForStartComplete()这个函数不像预期的那样工作。它等待状态寄存器中的“S”位,但是在开始信令序列期间,在外围设备准备接受另一个操作符之前,这个位被设置为部分位这个函数中的代码还需要检查Start Enable:SEN in Control寄存器,以及检查仲裁丢失:BCL in Status寄存器。使用:DRV_I2C0_MasterBusIdle();而不是.bool DRV_I2C0_ByteWrite(字节);即使操作被拒绝,这个函数也被视为返回“true”。se硬件忙于前一个操作.bool DRV_I2C0_WriteByteAcknowledged();混淆函数名:这个函数不写东西,它从从属获取一个状态位。和谐手册解释它实际做什么.bool DRV_I2C0_WaitForReadByteAvailable();这个“等待”函数不执行名称所说的!相反,它返回RBF状态标志。但如果用户循环这个函数直到它返回“true”,那么如果函数被更改为执行名称所表示的操作,程序将中断,如果出现问题,则函数返回“false”!除了检查接收缓冲区状态之外,这个函数还应该检查是否确实存在活动的接收操作,并且没有其他错误条件,否则程序可能挂起。附加了应用程序文件的修改版本。*评论*/格式,问候,Mysil
|
|
|
|
文件上传过程似乎不起作用,编辑消息也不起作用。迈西尔
|
|
|
|
只有小组成员才能发言,加入小组>>
5136 浏览 9 评论
1987 浏览 8 评论
1917 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3155 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2215 浏览 5 评论
705浏览 1评论
595浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
479浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
609浏览 0评论
504浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 12:56 , Processed in 1.299141 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号