STM32如何读写芯片内部FLASH,我要存几个变量。
答案:1 悬赏:50
解决时间 2021-01-21 12:27
- 提问者网友:火车头
- 2021-01-20 14:54
STM32如何读写芯片内部FLASH,我要存几个变量。
最佳答案
- 二级知识专家网友:未来江山和你
- 2021-01-20 15:26
void write_buf(u32 addr,u8 *p,u16 n)
{
u32 r1;
n=n/4;//擦除并写flash
FLASH_Unlock();//FLASH解锁
FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);//清标志位
FLASH_ErasePage(addr);
while(n--)
{r1=*(p++);
r1|=*(p++)<<8;
r1|=*(p++)<<16;
r1|=*(p++)<<24;
FLASH_ProgramWord(addr, r1);
addr+=4;
}
}
void read_buf(u32 addr,u8 *p,u16 n)
{
while(n--)
{
*(p++)=*((u8*)addr++);
}
}
{
u32 r1;
n=n/4;//擦除并写flash
FLASH_Unlock();//FLASH解锁
FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);//清标志位
FLASH_ErasePage(addr);
while(n--)
{r1=*(p++);
r1|=*(p++)<<8;
r1|=*(p++)<<16;
r1|=*(p++)<<24;
FLASH_ProgramWord(addr, r1);
addr+=4;
}
}
void read_buf(u32 addr,u8 *p,u16 n)
{
while(n--)
{
*(p++)=*((u8*)addr++);
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯