完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 sunsf910402 于 2013-7-26 16:37 编辑
请问各位一下,单片机能否将收到的数据写入FLASH。举个例子,假设在单片机程序内存在变量A,当前A=0,在接收到外部给发送的数据后(如数字2),将该数字保存在A中(A=2),掉电后数据不丢失,下次开机A的数据依旧是接收到的数值(即A依旧等于2) 上述功能能否实现,如果能可否给出上述功能的代码示例在这里先谢谢各位了 |
|
相关推荐
12个回答
|
|
额。。这个没试过。但是好像可以。但是要用高电压驱动。430不是可以吗。那51 应该也可以吧。不过没用过不敢讲
|
|
|
|
当然可以,不是所有单片机都有flash编程这个功能的,但绝大多数单片机都有eeprom,在进行flash编程时要注意地址,别把程序擦除了,而编程eeprom就没这个问题,就保存一个数找个带eeprom 的就行了
|
|
|
|
强大啊啊啊啊,牛人啊
|
|
|
|
值得学习下,很少对FLASH进行操作
|
|
|
|
|
|
|
|
EEPROM写入确实比往flash写入方便多了,之前的自己做的那个小项目改成了往EEPROM里写入数据了,自己的开发经验还是不足啊 |
|
|
|
看大牛回复,顺便学习一下。
|
|
|
|
/*
* Erase Sector in Flash Memory * Parameter: adr: Sector Address * Return Value: 0 - OK, 1 - Failed */ int EraseSector (unsigned long adr) { unsigned long n; n = GetSecNum(adr); // Get Sector Number IAP.cmd = 50; // Prepare Sector for Erase IAP.par[0] = n; // Start Sector IAP.par[1] = n; // End Sector IAP_Call (&IAP.cmd, &IAP.stat); // Call IAP Command if (IAP.stat) return (1); // Command Failed IAP.cmd = 52; // Erase Sector IAP.par[0] = n; // Start Sector IAP.par[1] = n; // End Sector IAP.par[2] = CCLK; // CCLK in kHz IAP_Call (&IAP.cmd, &IAP.stat); // Call IAP Command if (IAP.stat) return (1); // Command Failed return (0); // Finished without Errors } /* * Program Page in Flash Memory * Parameter: adr: Page Start Address * sz: Page Size * buf: Page Data * Return Value: 0 - OK, 1 - Failed */ int ProgramPage (unsigned long adr, unsigned long sz, unsigned char *buf) { unsigned long n; #if SET_VALID_CODE != 0 // Set valid User Code Signature if (adr == 0) { // Check for Vector Table n = *((unsigned long *)(buf + 0x00)) + *((unsigned long *)(buf + 0x04)) + *((unsigned long *)(buf + 0x08)) + *((unsigned long *)(buf + 0x0C)) + *((unsigned long *)(buf + 0x10)) + *((unsigned long *)(buf + 0x14)) + *((unsigned long *)(buf + 0x18)); *((unsigned long *)(buf + 0x1C)) = 0 - n; // Signature at Reserved Vector } #endif n = GetSecNum(adr); // Get Sector Number IAP.cmd = 50; // Prepare Sector for Write IAP.par[0] = n; // Start Sector IAP.par[1] = n; // End Sector IAP_Call (&IAP.cmd, &IAP.stat); // Call IAP Command if (IAP.stat) return (1); // Command Failed IAP.cmd = 51; // Copy RAM to Flash IAP.par[0] = adr; // Destination Flash Address IAP.par[1] = (unsigned long)buf; // Source RAM Address IAP.par[2] = 1024; // Fixed Page Size IAP.par[3] = CCLK; // CCLK in kHz IAP_Call (&IAP.cmd, &IAP.stat); // Call IAP Command if (IAP.stat) return (1); // Command Failed return (0); // Finished without Errors } |
|
|
|
小白老实说。。。。看得我好晕啊~!
|
|
|
|
为什么单片机中既有Flash又有EEPROM - 单片机实验 - 电子发烧友网 https://www.elecfans.com/lab/MCU/20161227464036.html
|
|
|
|
看不懂啊啊啊啊啊啊啊啊啊啊啊啊啊
|
|
|
|
看不懂啊啊啊啊啊啊啊啊 啊啊啊啊啊哈哈哈哈或或或
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
377 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
540 浏览 0 评论
950 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1403 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11760 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:02 , Processed in 0.808469 second(s), Total 92, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号