完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我试图用PIC18F46K22上的I2C1(RC3<->SCL1和RC4<->SDA1)与DS1631温度传感器通信,但是它不工作。它在等待状态改变时将永远挂起。我已经使用代码配置器设置了我的I2C代码,选择MSSP1,如下所示:Enable MSSP:YesEnable SM总线输入:NoSleRateControl:High SpeedSDA保持时间:100nsBaudrate生成器值:0x4F(200KHz)(DS1631数据表显示0-400KHz)从地址:7这是I2C初始化代码和DS_SetConfig()代码以及DS_Write()代码,取自代码生成器生成的i2c.h文件的建议:我是否误解了如何设置用于通信的内容或缺少关于配置的任何内容?微芯片的I2C生成代码是否与预期的一样通用?任何帮助将不胜感激!提前感谢!
|
|
相关推荐
7个回答
|
|
我不知道这个代码,我建议试试…另一个更简单的I2C代码,这样你就可以确定你的硬件是好的。
|
|
|
|
嗨,由MCC生成的NikelI2C函数:I2C1_MasterWrite(msg_.,pCount,address,&status))要求I2C地址参数是一个被剥离的7位地址值,即介于8到119之间的值,而不是传送给从机的组合的8位值。会有更大的错误,因为如果传感器不响应,I2C1IMASTION…中断任务驱动程序应该将“status”变量更新为不同于I2C1_MESSAGE_PENDINGG的值。请注意“status”变量应该声明为volatile:确保中断被启用并运行。您可以在中断函数内的调试器中设置断点,以检查它是否进入再见,Mysil
|
|
|
|
你好,达里奥,谢谢你的回复。我用以前的控制器测试了我的板,我知道硬件在工作。我还尝试了在互联网上找到的直接作用于端口本身的代码示例(即没有设置I2C模块),但是也无法使其工作,所以我选择了MCC代码,因为我相信它是最可靠的解决方案。嗨,Mysil,谢谢你的回复。关于7位地址,我已经修复了,但是仍然不能工作。将“status”更改为volatile将引发“(359)指针类型之间的非法转换”警告。I2C1_MESSAGE_STATUS是一个枚举。不管怎样,尝试过但是它没有解决任何问题。至于中断,我添加了在I2C ISR的第一行打开一个LED,它就转动了,所以我知道它正在中断。我将改变LED开关到ISR内的不同位置以检查它停留在什么状态。任何东西我还能试试吗?谢谢!
|
|
|
|
好啊!是的,使用LED来调试每一个步骤是我通常也做的…
|
|
|
|
嗨,回到一些基本问题:在正电源Vdd和I2C信号线RC3和RC4之间,上拉电阻值是多少?在调试器中,当程序停止时,可以使用万用表检查SCL和SDA上的电压电平,或者使用Dario建议的小LED。注意:如果使用LED监视I2C信号线,则带有串联电阻的LED应该连接在正Vdd和信号管脚之间。使用相对高电阻的LED串联电阻,1000欧姆应该可以。在开始I2C通信之前,SCL和SDA都应该是高逻辑电平:3V或更高,直到Vdd电源电压。在中断功能的第二条输入之后:情况S_MASTER_SEND_ADDR:SCL和SDA都应该:应该为低,并且两个LED都亮。另外,当测试I2C时,可能有助于减慢I2C通信。当MSSP用作I2C主控器时,SSP1ADD用作波特率寄存器。可以将任何值设置为:SSP1ADD=255;
|
|
|
|
嗨,谢谢。SDA和SCL都有2.2k的上拉电阻。我并没有打算增加一个LED到线路本身,而是使用另一个板内LED我已经作为控制。另一方面,调试似乎不起作用,在尝试启动时,我收到一条“无法获取硬件工具通信资源:PICkit3PlatformTool SN#...”消息。如果ISR进入任何其他状态,LED将关闭,但它似乎永远不会重新进入)。中断标志正在被清除,但是似乎中断条件不再被触发。我也试着把波特率设定到最低,不走运……传感器本身正在工作(它在一个小的独立板上),我已经用之前的控制器板测试过它,它工作了。
|
|
|
|
好吧,我放弃…我已经尝试了好几天,仍然无法使这件事生效!我已经尝试过MCC的代码生成器,我已经尝试手动驱动IO引脚,我已经尝试了一些在Web上找到的例子。这是一个链接到Dropbox zip文件,所有我的尝试@ Dropbox .com /S/WXZOHTBW4Z45 Alx/I2C%20Test.zip。DL = 0i知道这是很难对任何人没有硬件进行测试和检查,但任何建议将不胜感激!谢谢您!
|
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2027 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3202 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
772浏览 1评论
662浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
590浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
672浏览 0评论
572浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 10:53 , Processed in 1.394584 second(s), Total 88, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号