|
本帖最后由 aaabbbad 于 2017-3-11 13:06 编辑
我现在遇到一个问题,片上EEPROM写不进去,表现出的现象是:编译器在线调试观察EEPROM内部全是FF,我的擦写驱动是按照datasheet上的汇编写的c语言格式,网上说的BOD也是打开的,找到了几个相近片子的例程几乎一致,但就是写不进去,还请您再指导一下,以下附上我的代码和相关截图。
- void data_write(unsigned char addr,unsigned char value)
- {
- EEADR = addr; //写目标地址,范围0-ff
- EEDATA = value; //写目标值
- EECON1bits.EEPGD = 0; //指向EEPROM接口
- EECON1bits.CFGS = 0; //指向EEPROM/FLASH 区分config
- INTCONbits.GIE = 0; //关闭全局中断
- EECON1bits.WREN = 1; //使能写功能
- EECON2 = 0x55; //填入写序列 55h
- EECON2 = 0xAA; //填入写序列 aah
- EECON1bits.WR = 1; //使能写控制位
- while(EECON1bits.WR == 1); //等待写中断完成
- INTCONbits.GIE = 1; //使能全局中断
- PIR2bits.EEIF = 0; //清除写中断标志位
- EECON1bits.WREN = 0; //关闭写功能
- }
- int data_read(unsigned char addr)
- {
- EEADR = addr; //读目标地址,范围0-ff
- EECON1bits.EEPGD = 0; //指向EEPROM接口
- EECON1bits.RD = 1; //使能读功能
- return EEDATA;
- }
复制代码
时钟位配置
编译环境是MPLAB C18 调试器 PICKit3.5+
EEPROM地址手册上说范围是0x00-0xFF,我读写使用的地址是0x22,0x33,也没看到有什么位置说偏移地址啊,地址应该没错吧
地址组成关系如下
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|