|
楼主 |
发表于 2014-12-16 16:16:53
|
显示全部楼层
这几天调了几个模块都是挺顺利的,唯独用到AT24C1024 EEPROM的时候卡了一下,第一次用这么大的EEPROM,总是读写失败,仔细检查后发现是数据地址的问题,一般EEPROM数据地址都只有8位,比较大的需要16位地址来存数据。
8位数据地址的驱动
- void RTC_ByteWR(unsigned char Address,unsigned char FM_DataB) //FM写RTC单字节
- {
- _NOP();
- FM0_Start(); //总线启动
- FM0_Send(FM_RTC_KeyWR); //写入Key
- FM0_WaitASK();
- FM0_Send(Address);
- FM0_WaitASK();
- FM0_Send(FM_DataB);
- FM0_WaitASK();
- FM0_Stop();
- }
复制代码
16位数据地址的驱动
- void ROM_ByteWR(unsigned char Address_h,unsigned char Address_l,unsigned char FM_DataB) //EEPROM写单字节
- {
- _NOP();
- ROM_Start(); //总线启动
- ROM_Send(ROM_KeyWR); //写入Key
- ROM_WaitASK();
- ROM_Send(Address_h);
- ROM_WaitASK();
- ROM_Send(Address_l);
- ROM_WaitASK();
- ROM_Send(FM_DataB);
- ROM_WaitASK();
- ROM_Stop();
- }
复制代码
两者的区别只是16位数据地址的要写多一次Address
虽然不算是MSP430F449的问题,但也记录下! |
|