如何确定iic的上升时间和下降时间
答案:1 悬赏:80 手机版
解决时间 2021-01-27 04:30
- 提问者网友:浪荡绅士
- 2021-01-26 03:59
如何确定iic的上升时间和下降时间
最佳答案
- 五星知识达人网友:逃夭
- 2021-01-26 04:28
1、可能延时时间不够,器件读写速度慢,跟不上。
void delay()
//延迟5毫秒左右;
你用多少的晶振?12M的晶振标准51核,只能延时2个微秒。
2、write_byte(0xaa);
respons();
像这种写入数据的操作需要时间比较长,你的等待时间可能不够。查看你器件的datasheet,看它的写入时间需要多久。
3、拿示波器看一下你IIC总线的波形的上升时间和下降时间能不能满足IIC规范的要求。
4、嵌入式系统从稳定性考虑,最好对每个函数的操作成功与否进行判断,系统要对错误的情况进行处理。比如楼主的respons();函数,比较好的一种处理方式是:如果等待超时,那么返回错误码,由上层函数决定如何处理错误。重发or放弃,等等。 楼主刚刚开始学习不必要深究,可以思考下这方面的问题。
void delay()
//延迟5毫秒左右;
你用多少的晶振?12M的晶振标准51核,只能延时2个微秒。
2、write_byte(0xaa);
respons();
像这种写入数据的操作需要时间比较长,你的等待时间可能不够。查看你器件的datasheet,看它的写入时间需要多久。
3、拿示波器看一下你IIC总线的波形的上升时间和下降时间能不能满足IIC规范的要求。
4、嵌入式系统从稳定性考虑,最好对每个函数的操作成功与否进行判断,系统要对错误的情况进行处理。比如楼主的respons();函数,比较好的一种处理方式是:如果等待超时,那么返回错误码,由上层函数决定如何处理错误。重发or放弃,等等。 楼主刚刚开始学习不必要深究,可以思考下这方面的问题。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯