OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4396|回复: 8

[求助]蓝牙的EEPROM写操作不好用读操作正常,为什么啊?

[复制链接]

4

主题

11

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-9-7
在线时间
0 小时
发表于 2013-7-25 19:57:48 | 显示全部楼层 |阅读模式

用原子的IIC程序移植的,读取FM24C64的读和写操作都是正常的,但是写入蓝牙模块的EEPROM就不对了,蓝牙模块的EEPROM和铁电存储不一样嘛?!请高手指点一下,以下是写操作和主函数:
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{     
 u8 temp=0;                          
 IIC_Start(); 
 if(EE_TYPE>AT24C16)//160
  {
    IIC_Send_Byte(0XA0);    //发送写命令
    IIC_Wait_Ack();
    IIC_Send_Byte(ReadAddr>>8);//发送高地址
    IIC_Wait_Ack();  
   }
 else
   {
     IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //发送器件地址0XA0,写数据  
     IIC_Wait_Ack();
   } 
    IIC_Send_Byte(ReadAddr%256);   //发送低地址
    IIC_Wait_Ack();    
    IIC_Start();       
    IIC_Send_Byte(0XA1);           //进入接收模式      
    IIC_Wait_Ack(); 
    temp=IIC_Read_Byte(0);    
    IIC_Stop();//产生一个停止条件    
    return temp;
}
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{                               
    u8 num=0;
 IIC_Start(); 
 if(EE_TYPE>AT24C16)
 {
  IIC_Send_Byte(0XA0);     //发送写命令
  IIC_Wait_Ack();
  IIC_Send_Byte(WriteAddr>>8);//发送高地址
  IIC_Wait_Ack();  
 }else
 {
  IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //发送器件地址0XA0,写数据
  IIC_Wait_Ack();     
 }  
    IIC_Send_Byte(WriteAddr%256);   //发送低地址
    IIC_Wait_Ack();                
    IIC_Send_Byte(DataToWrite);     //发送字节          
    IIC_Wait_Ack();           
    IIC_Stop();//产生一个停止条件
    delay_ms(10);
}
int main(void)
{ uint16_t i=0,j=0,k=0,n=0,m=0,t=0;
 RCC_cfg();
 Sys_init(); 
 delay_init(72); 

 while(1)
  { 
   AT24CXX_WriteOneByte(0xC2,0x50);
   k++;
   if(k>100)
    {  k=0;
      AT24CXX_Read(0xC0,IIC_buf_Read,10);//
    }    
  }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-7-25 20:24:05 | 显示全部楼层
回复【楼主位】asdy00000:
---------------------------------
蓝牙的EEPROM?
不解...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-9-7
在线时间
0 小时
 楼主| 发表于 2013-7-25 20:27:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我用的蓝牙里面有些参数需要改变EEPROM中的数据的 ,可是写不进去数据!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-7-25 21:02:33 | 显示全部楼层
哦,没玩过这样的蓝牙,呵呵.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-9-7
在线时间
0 小时
 楼主| 发表于 2013-7-25 21:07:08 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
读写的操作应该和铁电存储是不是一样的原理啊?!
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-7-26 09:20:43 | 显示全部楼层
写的时候 要加一定的延时……
1~2ms  根据你的 存储介质不同。 可看它的资料
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-7-26 10:30:32 | 显示全部楼层
回复【5楼】asdy00000:
---------------------------------
铁电速度快,可以不加任何延时.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-7-26 10:30:45 | 显示全部楼层
但是EEPROM就不行了,每次写入之后得等待10ms左右
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2012-5-1
在线时间
0 小时
发表于 2015-12-22 10:23:33 | 显示全部楼层
各位 谁有原子哥最新的IIC 读写FM24CXX的驱动呀?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 21:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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