I2C调试出现的问题
- I2C调试出现的问题 推荐度:
- 相关推荐
I2C调试出现的问题
1、I2C可以读到数据,但是没有收到对应响应
Missing ACK/NCK,细看波形,出现短时间内波形变化如下图:
查找资料并未发现解决,先记录下,以后在修改。
根本原因:响应时序程序不对,写完地址后,SDA高的时候,同时设置SDA为输入模式!
代码如下:
错误示范:
i2cstart();
write_byte(0xa0);
SCL=1;
SDA=1;
delay(30);
SCL=0;
delay(30);
SDAC=1;//SDA设置输入模式
while((unsigned char)(SDA)!=0)
{i++;if(i>=5000){return 0;}}
SDAC=0;
SCL=0;
正确程序
i2cstart();
write_byte(0xa0);
SCL=1;
SDA=1;
SDAC=1;//SDA设置输入模式
delay(30);
SCL=0;
delay(30);
while((unsigned char)(SDA)!=0)
{i++;if(i>=5000){return 0;}}
SDAC=0;
SCL=0;
修改后,成功解决。
最新文章
- php的api接口
- Driller复现
- matlab stats里的f值,MATLAB 回归分析regress,nlinfit,stepwise函数
- java md5 加密工具类
- 概率图模型(PGM)综述
- 职场交流
- principal java
- HTK嵌入式训练
- 业内人员告诉你银行测试到底做什么,怎么进银行测试.....
- mmap是什么,为什么?
- python,jsonschema, marshmallow, “None is not of type ‘string‘
- 看门狗的使用与原理
- 餐厅预订系统有哪些?餐厅预订系统怎么选择?
- CSS3实现图片的3D旋转效果
- 1024专场回顾
- 信息论与编码
- 人力资源的名词解释