完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
给个邮件 我给你传个PIC模拟I2C的程序,已经通过验证
|
|
|
|
不好意思,现在才看到您的的回复,现在用中颖51的模拟IIC,一直检测不到AD5934的应答信号,协议都正常,发送数据用示波器看都正常,就是收不到从机的应答信号。kyd@kairoda.com 非常感谢! |
|
|
|
CZM陈先生123 发表于 2018-11-8 16:15 非常感谢!请问用PIC的晶振用的是多少M的?请加下我QQ 519052401 谢谢! |
|
|
|
我用的是内部晶振32MHZ, 你可以稍微延长点 没关系, |
|
|
|
我用的是中颖的51系列的MCU,内部时钟最大16M,IO口有4种状态,1、准双向 2、高阻输入 3、推挽输出 4、开漏输出 现在我用的是 SDA平时设为推挽输出,检测应答时,设为高阻输入,SCL一直设为推挽输出。
|
|
|
|
现在问题还是检测不到应答位信号
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------ //读某一地址的数据 unsigned char ReadOneByte(unsigned char Address) { unsigned char ReadValue; StartI2C(); //起始位 Send8Bit(0x1A); //写(地址) 控制指令 GetSlaveAck(); //收取从机的应答信号 SpeedI2C(20); Send8Bit(Address); //发送地址 GetSlaveAck(); //收取从机的应答信号 SpeedI2C(20); StartI2C(); //重起始位 Send8Bit(0x1B); //读(数据) 控制指令 GetSlaveAck(); //收取从机的应答信号 SpeedI2C(20); ReadValue=Receive8Bit();//读数据 SendMainNoAck(); //主机发送非应答信号 SpeedI2C(20); StopI2C(); //产生停止位 return (ReadValue); //返回读到的数据到上一级函数 } //------------------------------------------------------------------------------ //写某一地址数据 void WriteOneByte(unsigned char Address,unsigned char Data) { StartI2C(); //起始位 Send8Bit(0x1A); //写(地址) 控制指令 GetSlaveAck(); //收取从机的应答信号 SpeedI2C(20); Send8Bit(Address); //发送地址 GetSlaveAck(); //收取从机的应答信号 SpeedI2C(20); Send8Bit(Data); //发送地址 GetSlaveAck(); //收取从机的应答信号 SpeedI2C(20); StopI2C(); //产生停止位 SpeedI2C(20); } 注意:我给你的文件中关于连续读取多个字节和写多个字节是不正确的,在连续读取或写的时候需要先设定要读取的起始地址 |
|
|
|
pengzhongdianzi 发表于 2018-11-8 17:30 我给你的文件是一个老师傅给我的,我的程序主要部分借鉴了他的,但是还需要你结合自己的控制器。 |
|
|
|
|
|
|
|
|
|
|
|
奇怪的问题,现在湿度温度正常,测试阻抗时,一直等待出不来,V OUT端还是没有任何输出。
|
|
|
|
这个涉及到公司机密问题,应该是程序初始化有问题 |
|
|
|
Vout没有输出,与寄存器的配置和硬件连接正确与否相关。您也可以参考这里的代码:http://www.analog.com/zh/content/cast_index_code_example/fca.html |
|
|
|
只有小组成员才能发言,加入小组>>
258 浏览 0 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1299 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1896 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4237 浏览 2 评论
8995 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1421浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1645浏览 2评论
1615浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1299浏览 2评论
213浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 16:59 , Processed in 1.094697 second(s), Total 102, Slave 86 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号