打印
[STM32F1]

STM32 硬件IIC 读写EEPROM(AT24C32AN_32K)野火

[复制链接]
8587|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 仙人球W 于 2014-11-12 10:29 编辑

我使用野火的测试程序 用STM32的IIC2 读写EEPROM(AT24C32AN_32K) 用串口打印输出结果如下





只能写不能读,程序会死在一个地方...

可以的话,希望把好用的程序发送到540709935@qq.com 不甚感激!!

程序附在下面:

野火测试.zip

4.8 MB

沙发
mmuuss586| | 2014-11-12 12:39 | 只看该作者

你如果用的厂家的板子,和程序应该不会有问题的;
也可能芯片坏了;
联系野火的技术支持看看;

使用特权

评论回复
板凳
wangzhihai1986| | 2014-11-12 12:59 | 只看该作者
STM32F1系列的硬件I2C不好用,容易出错。不过其它系列还是不错的。

使用特权

评论回复
地板
仙人球W|  楼主 | 2014-11-12 13:34 | 只看该作者
mmuuss586 发表于 2014-11-12 12:39
你如果用的厂家的板子,和程序应该不会有问题的;
也可能芯片坏了;
联系野火的技术支持看看; ...

不是用的野火的板子 是公司的板子 板子如果有问题的话 应该写不进去呀?

使用特权

评论回复
5
仙人球W|  楼主 | 2014-11-12 13:36 | 只看该作者
wangzhihai1986 发表于 2014-11-12 12:59
STM32F1系列的硬件I2C不好用,容易出错。不过其它系列还是不错的。

我在网上也看了好多说STM32的IIC硬件不好用 要用DMA+IIC的方式  或者是用IIC中断将中断优先级设置为最高

使用特权

评论回复
6
仙人球W|  楼主 | 2014-11-13 09:26 | 只看该作者
STM32 IIC硬件 顶一个

使用特权

评论回复
7
bear1| | 2014-11-13 09:49 | 只看该作者
wangzhihai1986 发表于 2014-11-12 12:59
STM32F1系列的硬件I2C不好用,容易出错。不过其它系列还是不错的。

真假?请版主出来解释一下,以正视听。

使用特权

评论回复
8
仙人球W|  楼主 | 2014-11-13 13:31 | 只看该作者
本帖最后由 仙人球W 于 2014-11-13 13:34 编辑
bear1 发表于 2014-11-13 09:49
真假?请版主出来解释一下,以正视听。

问题找出来了 是给的程序问题 死在
while(NumByteToRead)
{
    if(NumByteToRead == 1)
    {
        /* Disable Acknowledgement */
        I2C_AcknowledgeConfig(I2C1, DISABLE);
        /* Send STOP Condition */
        I2C_GenerateSTOP(I2C1, ENABLE);
     }

    /* Test on EV7 and clear it */
    if(I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))
    {
        /* Read a byte from the EEPROM */
        *pBuffer = I2C_ReceiveData(I2C1);

       /* Point to the next location where the byte read will be saved */
       pBuffer++;

      /* Decrement the read bytes counter */
      NumByteToRead--;
    }
}

当NumByteToRead==1 失能IIC 这样不会执行if(I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)),以至于 NumByteToRead不会自减到0,程序死在while(NumByteToRead)里。

使用特权

评论回复
9
仙人球W|  楼主 | 2014-11-13 15:19 | 只看该作者
修改后的程序 测试结果如下:








可以看出头两个数据丢失,末尾数据错误  正在测试是否是写的问题还是读的问题  大家可以讨论...

2.png (32.11 KB )

2

2

1.png (33.61 KB )

1

1

3.png (32.56 KB )

3

3

使用特权

评论回复
10
wangzhihai1986| | 2014-11-13 17:04 | 只看该作者
bear1 发表于 2014-11-13 09:49
真假?请版主出来解释一下,以正视听。

0系列的,我用过,很好用,它的整个I2C都变了。

使用特权

评论回复
11
仙人球W|  楼主 | 2014-11-14 08:38 | 只看该作者
wangzhihai1986 发表于 2014-11-13 17:04
0系列的,我用过,很好用,它的整个I2C都变了。

特别尴尬 我用的是AT24C32 是双字节地址 这里没注意 现在好用了







2.png (32.45 KB )

2

2

1.png (32.93 KB )

1

1

3.png (32.41 KB )

3

3

使用特权

评论回复
12
仙人球W|  楼主 | 2014-11-14 11:42 | 只看该作者
:victory:

使用特权

评论回复
13
wxlainiyy| | 2015-12-14 21:11 | 只看该作者
楼主OK了把!!!

使用特权

评论回复
14
仙人球W|  楼主 | 2016-1-6 16:43 | 只看该作者
wxlainiyy 发表于 2015-12-14 21:11
楼主OK了把!!!

好用了了

使用特权

评论回复
15
胡大胆| | 2016-9-27 15:59 | 只看该作者
楼主能告诉一下死在那里的程序怎么改吗?小白一只求教

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

720

帖子

5

粉丝