共2条
1/1 1 跳转至页

问
24C256在400H地址随便写一个数据,例如,在4FFH地址写入05H,而在400H地址以后任一个地址读出来的都是05H数据。400H地址以前是正常的。怎么回事呢?
答 1:
查看你的“读”程序里的地址设置,问题80%出在这里!
答 2:
24LC256和24CL256的I2C程序有何不同吗?
答 3:
引用:
答 4:
“读”程序里的地址有什么特殊设置
答 5:
会不会是你使用了“段写”?就是在连续8个单元或者N*8个单元里一次写入多个数据的方式?建议你多抽几个数看看再说
答 6:
没有使用“段写”。我是一次写一个单元。那400H地址前的不会有这样的现象。WHY?
答 7:
该不会是芯片损坏了吧?换一片试试?
答 8:
几个都这样。你有没有范例呢
答 9:
那就只可能是程序问题了,把你的“读"程序和”写程序“都贴上来看看。
答 10:
;往EEPROM中写一个字节的数据
ROM_WIRTE_BYTE
CALL #I2C_Sta ;起动总线
NOP
NOP
MOV.B #0A0H,&I2C_NUM
MOV &ROMADD,R9
MOV.B R9,&I2C_AddrL
INC R9
MOV.B R9,&I2C_AddrH
CALL #I2C_WR_Addr
WAITACK3 MOV &ROMDATA,R8 ;存储
CALL #I2C_WR_BYT
CALL #I2C_Ackn
JC WAITACK3
CALL #I2C_Stop 答 11: 晕,我看不懂汇编,帮不了你了。请懂汇编的高手帮忙吧 答 12: 24cl256是fram,读写时器件地址和24lc256不同,查看手册 答 13: erlking 你的写程序贴上来 答 14: 我自己没写过,但是有别人写的现成的程序,我抄给你看看,我自己也看了一下,感觉有点乱,不知对你是否有帮助。过段时间我自己再抽空写一个。
ROM_WIRTE_BYTE
CALL #I2C_Sta ;起动总线
NOP
NOP
MOV.B #0A0H,&I2C_NUM
MOV &ROMADD,R9
MOV.B R9,&I2C_AddrL
INC R9
MOV.B R9,&I2C_AddrH
CALL #I2C_WR_Addr
WAITACK3 MOV &ROMDATA,R8 ;存储
CALL #I2C_WR_BYT
CALL #I2C_Ackn
JC WAITACK3
CALL #I2C_Stop 答 11: 晕,我看不懂汇编,帮不了你了。请懂汇编的高手帮忙吧 答 12: 24cl256是fram,读写时器件地址和24lc256不同,查看手册 答 13: erlking 你的写程序贴上来 答 14: 我自己没写过,但是有别人写的现成的程序,我抄给你看看,我自己也看了一下,感觉有点乱,不知对你是否有帮助。过段时间我自己再抽空写一个。
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
C语言函数宏的三种封装方式被打赏50分 | |
【STM32F769】记一次由于开启D-Cache之后DMA数据传输出错的问题查找与解决被打赏35分 | |
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769LVGL优化显示被打赏26分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769驱动ST7789以及显示优化被打赏36分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 PAL模拟I2C驱动适配被打赏23分 | |
我想要一部加热台+电源硬件设计规范被打赏16分 | |
我想要一部加热台+LED背光驱动芯片RT9293知识被打赏18分 |