No.94700 作者:maleon 邮件:maleon2000@sina.com ID:55425 登陆:2次 文章数:1篇 最后登陆IP:221.225.66.166 最后登陆:2007/10/18 12:27:00 注册:2006/6/15 13:37:08 财富:106 发帖时间:2006/6/15 13:38:57 发贴者IP:221.224.134.145 标题:maleon:请教铁电连续读写的问题 摘要:No.94700请教铁电连续读写的问题 第一次使用这个FM24C16A,单独对FM24C16A读写一个数据都是正常,结果也是正确的,偶参照了华胄网站上的C语言程序,但是老是只能正确读出第一个数据,以后的都是错误的FF,郁闷的是只能读一个,输出一个,几十个数据分别开来才能成功,请有经验的大虾指点一下。MCU是M8,外部晶振3.6864MHz 下面是偶的程序: void fram_multiple_byte_read(unsigned int addr,unsigned char read_length) { unsigned char temp_write; unsigned char temp_read; unsigned char addr_MSB; unsigned char addr_LSB; unsigned char i; unsigned char *ptr; CLI(); ptr=&StorageBuf[0]; //数据缓冲器 addr_MSB=(addr> > 8)& 0x0007; //addr是要起始读的地址 addr_MSB=(addr_MSB < <1); addr_LSB=addr&0x00ff; temp_write=(FRAM_WRITE|addr_MSB); //FRAM_WRITE为0xa0,FRAM_READ为0xa1,定义好了 temp_read=(FRAM_READ|addr_MSB); fram_start(); //铁电开始 in_byte(temp_write);//in_byte是向铁电写入的子程序,开始先将页地址写入 fram_wait_ack(); //发应答信号 in_byte(addr_LSB);//再写低8位地址 fram_wait_ack(); fram_start(); //按照技术文档的时序图发开始信号 in_b ......
>>返回讨论的主题
|