一、什么是data flash?
data flash 直译数据闪存,其实就是单片机留给用户存储自己数据的地方,类似于有些51单片机内部的EEPROM ,在CS+ 中也是可以直接配置生成库函数的,但是不能直接使用!不能直接使用!不能直接使用!需要安装FDL 库。
安装包在百度网盘:
百度网盘:https://pan.baidu.com/s/1VwOa1lMxrD9uKWG8oyM7sw
提取码:dxol
- 现在解压—>点击安装—>我安装到安装包的路径
- 进入FDL—>CA78K0R_110—>lib
二、怎么用?
-
工程中配置 data flash,配置完成后点击生成代码
在 r_cg_pfdl.c 中已经生成读写的函数
-
将FDL 库中的lib 文件夹复制到工程路径中
-
在工程树中新建lib 并将lib 里面的所有文件加进来,pfdl.inc 不加也可以,其他三个 必须加
-
添加头文件依赖,这时候编译应该是没问题了
三、例子
这里我直接封装了两个函数,分别是读写的函数
读写操作前需要关总中断,操作完成后再把总中断打开
/************************************************************************
**@函数功能: 写flash
**@参数: address--->首地址
** buffer --->缓存数据
** size --->数据长度
**@返回值: 无
**@作者: XiaoYoung
**@版本及日期 2021/9/23
**@更新说明:
**************************************************************************/
void write(u16 address,u8 *buffer,u8 size)
{
DI();
R_FDL_Open();
R_FDL_Erase(0);
R_FDL_Write(address,buffer,size);
R_FDL_Close();
EI();
}
/************************************************************************
**@函数功能: 读flash
**@参数: address--->首地址
** buffer --->缓存数据
** size --->数据长度
**@返回值: 无
**@返回值: 无
**@作者: XiaoYoung
**@版本及日期 2021/9/23
**@更新说明:
**************************************************************************/
void read(u16 address,u8 *buffer,u8 size)
{
DI();
R_FDL_Open();
R_FDL_Read(address,buffer,size);
R_FDL_Close();
EI();
}
//伪代码
int mian(void)
{
R_FDL_Create();
write(0x001,write_buffer,2);
read(0x001,read_buffer,2);
while(1)
{
;
}
}