1,CS接上拉电阻了吗?读出的都是FF,可能的原因很多,可能你的VCC电压不够,可能是你的延迟时间不足,导致无法写(你的应该不是)。在上电过程中,你的CS与VCC引脚的电平保持一致了吗,而且在VCC达到最小值之前,不能 *** 作。不能读的原因,可能写保护了(掉电后或者写禁能、页编程、扇区擦出块区擦除、芯片擦除、写状态寄存器 指令之后)。
2,你的flash读出的ID不一样的原因:开发板时钟与你的时钟一样啊?晶振是否一致。
暂时想到这么多。
至于开发板上最小系统的电容阻值问题,没有电路图,真的不好办,但是既然是接地电容,大部分是滤波的,影响应该不大,而且你是按照datasheet连的。
如果是在单片机程序中写Flash,这是一个很复杂的过程,
Atmega单片机
Flash分为两个区:可读写区(RWW),不可读写区(NRWW)
RWW:
read-while-write,也就是常说的
bootloader
区,
NRWW:no-read-while-write
一般的应用程序是在NRWW区的,也就是说不可以对flash进行 *** 作,但是你可以写一段
程序下载
到RWW区,然后这一段的程序可能对整个Flash进行读写 *** 作,所以你要实现写Flash的话,你的应用程序必须跳转到RWW区,将要写的地址传给它,然后由该部分的程序去完成 *** 作,然后再跳回你的应用程序
以上就是关于请教关于FLASH读写的问题全部的内容,包括:请教关于FLASH读写的问题、AVR单片机中如何写flash,目前能够读出来,就是不知道怎么将变量写到flash任意地址中、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)