当前位置: 首页 > news >正文

【电机控制器】FM33LF015芯片——FLASH模拟EEPROM

【电机控制器】FM33LF015芯片——FLASH模拟EEPROM


文章目录

    • @[TOC](文章目录)
  • 前言
  • 一、概述
  • 二、代码
  • 三、实验
  • 四、参考资料
  • 总结

前言

使用工具:
1.ARM仿真器/J-OBV2仿真器


在这里插入图片描述

提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、代码

#define FLASH_PROG_ADDR         0x00004000
#define PAGE_BUFFER_SIZE    128
#define SECTOR_BUFFER_SIZE    512
/* Page大小为512字节 即128个字 */
/* 32位=32bit=4byte,1byte=4bit */
/* PageDataBuffer[128]数组有128个元素,每个元素占用4个byte,即4个字节 */
/* 1byte占用8位 */
uint32_t PageDataBuffer[PAGE_BUFFER_SIZE];
/* Sector大小为2048字节 即512个字 */
uint32_t SectorDataBuffer[SECTOR_BUFFER_SIZE];
uint32_t ReadData;
void FlashRW(void)
{FL_FLASH_PageErase(FLASH, FLASH_PROG_ADDR);memset(PageDataBuffer, 0x55, PAGE_BUFFER_SIZE * 4);FL_FLASH_Program_Word(FLASH, FLASH_PROG_ADDR, PageDataBuffer[0]);ReadData = *((uint32_t *)FLASH_PROG_ADDR);//将flash数据读出//    FL_FLASH_PageErase(FLASH, FLASH_PROG_ADDR);
//    memset(PageDataBuffer, 0xAA, PAGE_BUFFER_SIZE * 4);
//    FL_FLASH_Program_Page(FLASH, FLASH_PROG_ADDR / FL_FLASH_PGAE_SIZE_BYTE, PageDataBuffer);
//    ReadData = *((uint32_t *)FLASH_PROG_ADDR);//将flash数据读出//    FL_FLASH_SectorErase(FLASH, FLASH_PROG_ADDR);
//    memset(SectorDataBuffer, 0x00, SECTOR_BUFFER_SIZE * 4);
//    FL_FLASH_Program_Sector(FLASH, FLASH_PROG_ADDR / FL_FLASH_SECTOR_SIZE_BYTE, SectorDataBuffer);
//    ReadData = *((uint32_t *)FLASH_PROG_ADDR);//将flash数据读出//FL_FLASH_SectorErase(FLASH, FLASH_PROG_ADDR);
}

三、实验

写两个字节,0x55,掉电后重新上电,仍然是2个字节的0x55
这里的地址和芯片手册没有对上,芯片手册是0x00040000,试了一下没有成功
反而是0x00004000是可以的
后续我在bootswap章节中看到了对于IF3的描述是最低word 00004000地址和实验结论相符
在这里插入图片描述
用连续写word的方式,写入8个Word,即4个byte,4个字节,32个bit
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、参考资料

【C语言】十六进制、二进制、字节、位、指针、数组

总结

本文仅仅简单介绍了【电机控制器】FM33LF015芯片——FLASH模拟EEPROM,评论区欢迎讨论。


http://www.mrgr.cn/news/80013.html

相关文章:

  • 黑皮书-计算机科学导论02
  • react-dnd 拖拽事件与输入框的文本选中冲突
  • Opencv之图像添加水印
  • HCIA-Access V2.5_2_2网络通信基础_TCP/IP协议栈报文封装
  • SAP FICO物料分类账
  • 任务4 DNS服务配置与管理
  • ubuntu22.04 使用crash
  • SpringBoot 手动实现动态切换数据源 DynamicSource (中)
  • 【大前端vue:组件】鼠标上移 出现动画
  • pyfink1.20版本下实现消费kafka中数据并实时计算
  • 【架构】从 Socket 的角度认识非阻塞模型
  • xshell连接虚拟机,更换网络模式:NAT->桥接模式
  • 网络基础 - TCP/IP 五层模型
  • 爬虫基础知识点
  • 设计模式——Singleton(单例)设计模式
  • 12.12 深度学习-注意力机制
  • Java从入门到工作3 - 框架/工具
  • 如何在项目中使用人大金仓替换mysql
  • 单目深度估计模型 lite-mono 测试
  • 如何使用程序查询域名whois信息?(带PHP/C#示例)