完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用STM8L052做个项目,这几天发现写EEPROM偶尔会死机,产品频繁测试的时候,按键按下后会写一次EEPROM,按键一直按测试,发现不定时会出现一次死机,找不到什么问题,大家帮忙看看。
写EEPROM的字函数 uint8_t EEPROM_Buff_Write (uint16_t addr, uint8_t *buff, uint16_t len) { uint16_t i, count = 0; //WDT_Feed (); //喂狗 //这样字节写的话会成功,但是快写的话失败。而且要全速运行才能写正确 disableInterrupts(); //关全局中断 FLASH_DUKR = 0xAE; //写入第一个密钥 FLASH_DUKR = 0x56; //写入第二个密钥 FLASH_CR2 = 0x00; //标准块编程,会先擦除的 while (((FLASH_IAPSR 0x08) == 0) (count < 0xFFFF)) { count ++; //等待解锁完成 } if (count == 0xFFFF)return 0; //WDT_Feed (); //喂狗 for(i = 0; i < len; i++) { *((uint8_t *)(USERPAGE + addr + i)) = buff[i]; while(FLASH_IAPSR_EOP == 0); } FLASH_IAPSR_DUL = 0; //操作完要加锁 enableInterrupts(); //开全局中断 return 1; } 调用时的操作 buff_Count = 0; buff[buff_Count ++] = Manu_Temp / 100; buff[buff_Count ++] = Manu_Temp % 100; EEPROM_Buff_Write (0x0D0, buff, buff_Count); |
|
相关推荐
1个回答
|
|
其他的都不管,试下直接解锁写进去看看。没死过
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1932浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
725浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
564浏览 3评论
591浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
549浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 04:23 , Processed in 0.956821 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号