首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

EEPROM为什么一次只能烧写一个

可是函数IFsh1_SetByteFlash本身只有两个参数呀。
海纳百川  有容乃大
把整个project打包贴出来看看吧。
海纳百川  有容乃大
你上传的PROJECT中没有连写6次的程序?那是我想看的。
或者,你可以关闭COP试试。
海纳百川  有容乃大
你是怎么关闭COP的?要注意SOPT寄存器上电后只能写一次,再次写入是无效的。
海纳百川  有容乃大
程序的问题出在参数传递上。当调用函数IFsh1_SetByteFlash时,你用的格式是:
IFsh1_SetByteFlash(0xC000,PassWordDef[0]);
同时,你可以看到函数IFsh1_SetByteFlash的格式为:
byte IFsh1_SetByteFlash(word Addr,byte Data)
{
return NonDestructiveUnsecureWrite((word )&Data,Addr,0x06); /* Write data to the flash */
}
所以,实际上在你调用函数IFsh1_SetByteFlash时,只是将一个数组元素的值传过来,它的真正地址值并没有传过来。用(word )&Data解析出的地址值是错误的。因此,你一次写6的数只有第一个是正确的。
如果要正确地一次写入6个字节,就必须将真正的地址值传过来。试试看吧,相信你能做到。
海纳百川  有容乃大
恭喜恭喜
海纳百川  有容乃大
返回列表