如何调整STM32单片机中flash与时钟速率之间的关系.doc

上传人:白大夫 文档编号:3429445 上传时间:2019-08-24 格式:DOC 页数:3 大小:18.50KB
返回 下载 相关 举报
如何调整STM32单片机中flash与时钟速率之间的关系.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《如何调整STM32单片机中flash与时钟速率之间的关系.doc》由会员分享,可在线阅读,更多相关《如何调整STM32单片机中flash与时钟速率之间的关系.doc(3页珍藏版)》请在三一文库上搜索。

1、如何调整STM32单片机中flash与时钟速率之间的关系void Flash_Init(void)/ 调整flash与时钟速率之间的关系FLASH-ACR |= FLASH_ACR_LATENCY;void Flash_Unlock(void)/ FLASH-CR 的第7位为解锁的标志位或者上锁的操作位while(FLASH-CR FLASH-KEYR = FLASH_FKEY1;FLASH-KEYR = FLASH_FKEY2;void Flash_Lock(void)FLASH-CR |= FLASH_CR_LOCK;void Flash_Clear_All_Flag(void)unsig

2、ned long flag_temp;flag_temp = FLASH-SR;FLASH-SR = flag_temp / 因为flash是从0x08000000开始的,总共64k,每1k就是1页/ which_page_temp - 你所清空页包含的地址(该地址在哪一页的范围就清空哪一页)void Flash_Earse_Page(unsigned long which_page_temp)FLASH-CR |= FLASH_CR_PER;FLASH-AR = which_page_temp;FLASH-CR |= FLASH_CR_STRT;while(FLASH-SR / 等待BSY清

3、零FLASH-CR / 因为flash是从0x08000000开始的,总共64k,每1k就是1页/ 我们直接将最后一页当做一个储存空间,即储存的首地址为 (0x08000000 + 1024 * 63)/ 所以 write_dat_temp 的范围 0 - (1024 / 4 - 1)/ Flash数据长度必须是半字节,其它长度会引起中断/ 为了配合读取的时候是整个一个字,写入的时候也写入一个字void Flash_Write_Dat(unsigned long write_num_temp,unsigned long write_dat_temp)Flash_Clear_All_Flag()

4、;Flash_Unlock();Flash_Earse_Page(0x08000000 + 1024 * 63);FLASH-CR |= FLASH_CR_PG;*(_IO uint16_t*)(0x08000000 + 1024 * 63 + write_num_temp * 4 + 0) = (write_dat_temp *(_IO uint16_t*)(0x08000000 + 1024 * 63 + write_num_temp * 4 + 2) = (write_dat_temp while(FLASH-SR / 等待BSY清零FLASH-CR Flash_Lock();/ 因为f

5、lash是从0x08000000开始的,总共64k,每1k就是1页/ 我们直接将最后一页当做一个储存空间,即储存的首地址为 (0x08000000 + 1024 * 63)/ 所以 read_num_temp 的范围 0 - (1024 / 4 - 1)/ 读取一个地址的时候,读取的是一个字,4个字节,所以一次需要跳过四个字节unsigned long Flash_Read(unsigned long read_num_temp)unsigned long read_dat_temp;read_dat_temp = *(_IO uint32_t *)(0x08000000 + 1024 * 63 + read_num_temp * 4);while(FLASH-SR / 等待BSY清零return read_dat_temp;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1