野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13588|回复: 8

软件模拟IIC,但是在读写上有问题。

[复制链接]
发表于 2014-8-12 01:19:50 | 显示全部楼层 |阅读模式
各种纠结啊,在51上可以运行,到stm32上就不可以了。对比了一下,和demo对比一下,发现时单字节写入和读取上的问题。程序贴出来。各位大大,帮我看看啊。

#include "24C02.h"
void write_byte(u8 add,u8 dat)
{
        Start_IIC();
        Write_byte_IIC(0Xa0);
        I2C_Ack();
        Write_byte_IIC(add);
        I2C_Ack();
        Write_byte_IIC(dat);
        I2C_Ack();
        Stop_IIC();
}
u8 read_byte(u8 add)
{
        u8 dat;
        Start_IIC();
        Write_byte_IIC(0Xa0);
        I2C_Ack();
        Write_byte_IIC(add);
        I2C_Ack();
        Start_IIC();
        Write_byte_IIC(0Xa1);
        I2C_Ack();
        dat=Read_byte();
        I2C_NoAck();
           Stop_IIC();
         
        return dat;
                       
}

QQ截图20140812011722.png
QQ截图20140812011733.png
QQ截图20140812011745.png
QQ截图20140812011755.png
QQ截图20140812011804.png
回复

使用道具 举报

 楼主| 发表于 2014-8-12 01:20:23 | 显示全部楼层
各位,求顶起来啊
回复 支持 反对

使用道具 举报

发表于 2014-8-12 08:50:49 | 显示全部楼层
野火有个模拟IIC例程,LZ可以参照一下
回复 支持 反对

使用道具 举报

发表于 2014-8-12 09:56:41 | 显示全部楼层
火哥有例程软件I2C啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-12 10:02:10 | 显示全部楼层
刀_口 发表于 2014-8-12 08:50
野火有个模拟IIC例程,LZ可以参照一下

是哪一个?
回复 支持 反对

使用道具 举报

发表于 2014-8-12 10:18:09 | 显示全部楼层
会散步的鱼 发表于 2014-8-12 10:02
是哪一个?

野火ISO-基础入门篇  
12、 I2C-EEPROM
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-12 15:47:58 | 显示全部楼层
哦,看到了,我是多个字节可以写。单个字节就不行。完全按照时序图来的,就是不能读写单个字节。
回复 支持 反对

使用道具 举报

发表于 2014-8-13 08:50:45 | 显示全部楼层
会散步的鱼 发表于 2014-8-12 15:47
哦,看到了,我是多个字节可以写。单个字节就不行。完全按照时序图来的,就是不能读写单个字节。

先用野火的看能不能实现你的功能,再试着对比两个代码的时序对着查找
回复 支持 反对

使用道具 举报

发表于 2014-8-13 18:37:47 | 显示全部楼层
我之前也搞了IIC,比较麻烦,建议还是库开发读写。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-30 01:33 , Processed in 0.027123 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表