初级会员

- 积分
- 95
- 金钱
- 95
- 注册时间
- 2014-9-29
- 在线时间
- 3 小时
|
5金钱
是从淘宝买的STM32F030K6,完全抄原子哥的例程,FLASH模拟EEPROM没问的,只是学习之用。现要用STM32F030K6来开发产品,,比如#define FLASH_SAVE_ADDR 0x08007000,还是一样,存储3个半字节内容。
发现如下问题:
工作中偶尔会出现自动复位,读出的内容变乱了,这是啥原因?
以下是我的定义,驱动函数完全抄原子哥的
#define STM32_FLASH_SIZE 32 //所选STM32的FLASH容量大小(单位为K)
#define STM32_FLASH_WREN 1 //使能FLASH写入(0,不是能;1,使能)
#define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址
#define FLASH_KEY1 0X45670123 //第1个FLASH解锁键值
#define FLASH_KEY2 0XCDEF89AB //第2个FLASH解锁键值
#define STM_SECTOR_SIZE 1024 //字节
uint16_t STMFLASH_BUF[STM_SECTOR_SIZE/2]; //最多是2K字节
#define FLASH_SAVE_ADDR 0x08007000 //设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000)
#define SIZE 5 //数组长度
uint16_t read_out_data[5];
uint16_t write_in_data[5]; |
|