Ubeeto开发板在电路板上的单片机芯片中开辟了一块Flash区域,专门用来给用户存储一些必要的参数信息。这样您开发的产品如果需要存储的数据量不是太大就可以考虑直接用开发板内部的Flash,从而省掉TF存储卡的成本。
Ubeeto物联网开发板提供64个Number区域(Number0~Number63)和4个String区域(String0~String3)作为存储区域:
- 每个Number区域可以存1个4字节的int型数据。 - 每个String区域可以存1个长度在64字节内的字符串。
注意1:Ubeeto开发板的Flash区域只能写一万次,这是由芯片内的Flash特性所决定,所以Number区域和String区域写入的次数总和不能超过一万次。对于大多数应用而言一万次已经足够,毕竟参数型的信息不会经常修改。
注意2:目前如果Ubeeto开发板的Ble蓝牙功能开启时暂不支持对Flash的读写操作,该问题未来会解决。
1、当BTN1按键短按后,开始向所选的Number区域和String区域写入信息。
2、当BTN2按键短按后,开始读出刚刚在对应的Number区域和String区域写入的信息。
本例中所选择的Number(0~2),Number(61~63), String0,String3,为任意选的,您也可以修改成其他区域来验证。
--配置USB以虚拟串口模式工作,波特率115200 LIB_UsbConfig("CDC") --设置按键1(占用D10口)以低电平有效的方式检测按键动作 LIB_ButtonConfig("BTN1","D10","L") --设置按键2(占用D10口)以低电平有效的方式检测按键动作 LIB_ButtonConfig("BTN2","D11","L") --开始大循环 while(GC(1) == true) do --处理按键事件 btn1_val = LIB_ButtonQuery("BTN1") --查询按键1是否短按过 if btn1_val == 1 then print("Start writing flash...\r\n") --write NumberN LIB_FlashWriteNumber("0",-12345) LIB_FlashWriteNumber("1",-1234567) LIB_FlashWriteNumber("2",-123456789) LIB_FlashWriteNumber("61",12345) LIB_FlashWriteNumber("62",1234567) LIB_FlashWriteNumber("63",123456789) --write StringN LIB_FlashWriteString("0","www.shineblink.com") LIB_FlashWriteString("3","ABC123") print("Write flash end.\r\n") end --处理按键事件 btn2_val = LIB_ButtonQuery("BTN2") --查询按键2是否短按过 if btn2_val == 1 then print("Start reading flash...\r\n") --read NumberN num = LIB_FlashGetNumber("0") print(string.format("Number0 = %d\r\n", num)) num = LIB_FlashGetNumber("1") print(string.format("Number1 = %d\r\n", num)) num = LIB_FlashGetNumber("2") print(string.format("Number2 = %d\r\n", num)) num = LIB_FlashGetNumber("61") print(string.format("Number61 = %d\r\n", num)) num = LIB_FlashGetNumber("62") print(string.format("Number62 = %d\r\n", num)) num = LIB_FlashGetNumber("63") print(string.format("Number63 = %d\r\n", num)) --read StringN str = LIB_FlashGetString("0") print(string.format("String0 = %s\r\n", str)) str = LIB_FlashGetString("3") print(string.format("String3 = %s\r\n", str)) print("Read flash end.\r\n") end end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在API文档中通过Ctrl+F查询。
在电脑端运行的调试助手上,我们可以看到如下打印输出信息:
简单、快捷、高效、强大的物联网开发板
© 2022. All Rights Reserved. 粤ICP备2021058065号