单片机 用串口 向C8051F的128K FLASH写入 大量数据,怎么弄?
发布网友
发布时间:2022-04-28 15:36
我来回答
共1个回答
热心网友
时间:2022-06-19 11:30
在内存
外存
(用dptr来访问,内存不够大)中定义一512字节的数组,pc机给你发数据一次发51个,都存入这个数组,收到pc机512个字节的数据后向pc机请求暂停发送,然后把这512个自己写入flash的
扇区
中,写入完成后,把在内存的数组和已经写入flash的数据做一次比较,如果有不一样的,重新把数组的数据写入flash,在写入的过程中要关闭中断。每写入一字节的数据后让单片机做几次空操作,保证可靠性。
去新华龙网站技术交流区看看。
我做过c8051向flash写入数值,比较少,就几个,但是思路是一样的。
pc机和单片机之间的协议可以双方互相约定。比如,在内存外存(用dptr来访问,内存不够大)中定义一512字节的数组,pc机给你发数据一次发512个,都存入这个数组,收到pc机512个字节的数据后向pc机请求暂停发送,然后把这512个自己写入flash的扇区中,写入完成后,向pc机请求下一个512字节的数据,依次循环,直至完成所有的数据写入。
想flash写入数据,要先规划数据区,然后在keil中把自己的程序定位在数据区之外,c8051的flash是512字节一个扇区,写数据时要先擦除一个扇区,然后再写入,一个扇区至多写512字节的数据,这个扇区写完了后
要擦除下一个扇区,再进行同样的工作,总的完了后要把相应的寄存器关闭,这时芯片中内存的指向就不是flash而是ram了。
大体就是这样,你可以看看c8051的引用笔记,以前这些资料都是公开的,现在新华龙只向买它们产品的人提供,多在网上找找,结合c8051的引用笔记加
例程
,不难。
去新华龙网站
技术交流区有
“C8051F020中
Flash存储器
的在线擦写方法
”
注册一个用户,
可以下载,如果需要f020芯片的中文资料,可以在网上找,也可以找我。
f020可以在线擦除可执行的程序,因为它还有一段
引导区
,这一个我不是很清楚,你可以参看020的应用笔记。
c8051资料丰富,
集成度
高,上手快,开发调试先进,是不错的单片机。
写了这么多,希望可以帮到你。