驯马师 发表于 2013-8-27 08:32:33

正点原子的模拟IIC读写数据

我移植正点原子的模拟IIC程序之后,根据我的硬件做了如下修改:
1、修改头文件的宏定义为“#define EE_TYPE AT24C64”驱动24c64,
2、配置PA0为SCL,PA1为SDA.
3、修改初始化以及头文件里面的输入输出为PA0和PA1.

在main()中依然添加此函数:
u8 AT24CXX_Check(void)
{
        u8 temp;
        temp=AT24CXX_ReadOneByte(255);//避免每次开机都写AT24CXX                          
        if(temp==0X55)return 0;                  
        else//排除第一次初始化的情况
        {
                AT24CXX_WriteOneByte(255,0X55);
          temp=AT24CXX_ReadOneByte(255);          
                if(temp==0X55)return 0;
        }
        return 1;                                                                                          
}

我仿真进入此函数之后,每次读出来的temp=0xFF.
一直很郁闷,不知道问题到底出在哪里?请大家帮忙分析一下原因。谢谢。

shenzhensishong 发表于 2013-8-27 14:25:50

这个是STM32的吗 这个没有写保护吗

guer 发表于 2013-8-27 17:11:29

用原子的程序成功读写24c512的飘过!

shenzhensishong 发表于 2013-8-28 18:09:10

楼主啊有通过调试吗我也正在弄这个这个是有点麻烦哦

not_at_all 发表于 2013-8-28 18:25:16

应该是硬件问题   我调试过我的板 24c256没问题 ,SDASCL有没有接反有没有写保护IO初始化是否正确(例如有没有开启PA口外设时钟)IC电压是否正确

usartcodeed 发表于 2013-8-28 18:33:12

你是不是用的老版本的程序移植的?
老版本多了一个ack。
移植新版本的吧。

驯马师 发表于 2013-8-29 11:39:03

usartcodeed 发表于 2013-8-28 18:33 static/image/common/back.gif
你是不是用的老版本的程序移植的?
老版本多了一个ack。
移植新版本的吧。 ...

对啊,就是这个问题造成的,谢谢你了。

驯马师 发表于 2013-8-29 11:40:39

shenzhensishong 发表于 2013-8-28 18:09 static/image/common/back.gif
楼主啊有通过调试吗我也正在弄这个这个是有点麻烦哦

老版本读写函数里面多了一个ack,移植新版本吧!

ljx289 发表于 2018-8-15 09:31:02

iic的上拉电阻也要注意哦!我试过一次不小心焊了10k的,后来调了很久上了示波器才发现问题
页: [1]
查看完整版本: 正点原子的模拟IIC读写数据