应用例程:用外置FLASH(W25Q16)实现参数保存基本信息在STM32F103RCT6核心板最小系统的基础上,添加OLED液晶屏显示,并可以通过按键编辑2个参数:报警压力、报警液位。添加MemIf蓝图,通过核心板上的外置FLASH芯片W25Q16保存这两个参数,修改好参数后断电重启,观察参数是否保持不变。 视频下载暂无 实验硬件STM32F103RCT6核心板(1块)[ 购买 ]: CH340E通讯小板(1块)[ 购买 ]: Micro-USB通讯线(1根)[ 购买 ]: OLED屏SSD1306(1块)[ 购买 ]: 8输入独立按键模块(1块)[ 购买 ]: 电路参考
关键配置说明添加蓝图MemIf,在蓝图中添加内存存储模块MemIf、外置FLASH驱动模块W25Q_Fls。如果已经配置了OLED液晶屏,那么SPI通讯相关的模块已经添加。在电路上,外置FLASH的SPI通讯与OLED液晶屏的SPI通讯是同一路,用不同的片选管脚进行分时复用。 在蓝图中选择模块W25Q_Fls,在配置节点Chip下面添加存储芯片Chip0。选择芯片型号为W25Q16。 在蓝图中选择模块Spi,在配置节点Job下面查看系统自动添加的通讯任务:W25Q_Fls_Chip0_Spi。确认通讯设备是Device0,片选管脚是PC9。 在蓝图中选择模块MemIf_Fe,在配置节点Block下面添加用户存储块Block0、Block1。两个存储块对应的底层类型是Fls,操作的芯片是模块W25Q_Fls下面的Chip0。Block0的大小是64个字节,Block1的大小是256个字节。 编译系统,MemIf_Fe会在MemIf模块中添加相关的节点。在蓝图中选择模块MemIf,配置节点中选择Block,观察是否已经添加了两个存储块。在配置界面可以查看系统生成的存储块地址分配。因为W25Q16的最小擦除单元是4K字节,为了两个块可以独立操作,Block1并没有紧随Block0分配地址,而是分配在了下一个可独立擦除单元上,地址是4K对齐的。 输入输出和OLED屏的配置可参考下面的例程: 应用程序梯形图NETWORK 0 将参数编辑按键信息送入OLED液晶屏
NETWORK 1 启动时,利用启动信号SM0.1进行内存块的读操作,初始化变量VW100和VW102
NETWORK 2 M0.0每过200毫秒闭合一次
NETWORK 3 用M0.0触发数据保存操作,将VB100 ~ VB163写入存储块Block0
液晶屏配置实验步骤
指令说明补充说明使用MemIf模块,在数据有效性上提供了下列支持:
使用MemIf模块,依然存在数据失效的下列风险:
如果对数据的有效性有较高的要求,建议使用NvM模块配合MemIf来进行参数的保存。 相关下载
|