[nRF51822] 11、基础实验代码解析大全 · 实验16 - 内部FLASH读写
一、实验内容:
通过串口发送单个字符到NRF51822,NRF51822 接收到字符后将其写入到FLASH 的最后一页,之后将其读出并通过串口打印出数据。
二、nRF51822芯片内部flash知识:
EN-nRF51D 开发板使用NRF51822 芯片为nRF51822-QFAA,如下图所示,共有256KBFLASH,256 页,页大小为1024 字节。
NRF51822 内部FLASH 写流程如下:
三、代码解析:
main:
int main(void)
{
... 串口初始化 printf("Flashwrite example\r\n");
patold = ;
pg_size = NRF_FICR->CODEPAGESIZE;
pg_num = NRF_FICR->CODESIZE - ; // Use last page in flash while (true)
{
// Start address:
15 addr = (uint32_t *)(pg_size * pg_num);//计算地址并擦除一页
16 // Erase page:
17 flash_page_erase(addr);
i = ; do
{
printf("Enter char to write to flash\r\n"); // Read char from uart, and write it to flash:
25 do
26 {
27 err_code = app_uart_get(&patwr);
28 }
29 while(err_code == NRF_ERROR_NOT_FOUND);//从串口获得1byte数据
31 if (patold != patwr)//将1byte写入flash
32 {
33 patold = patwr;
34 flash_word_write(++addr, (uint32_t)patwr);
35 i += 4;
36 printf("'%c' was write to flash\r\n", patwr);
37 }
// Read pattern from flash and send it back:
patrd = (uint8_t) * addr;
printf("'%c' was read from flash\r\n", patrd);
}
while (i < pg_size);
}
}
@nRF51822基础实验系列:
[nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI
[nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC
[nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC
@beautifulzzzz - 物联网&普适计算实践者
e-mail:beautifulzzzz@qq.com
i-blog:blog.beautifulzzzz.com
最新文章
- GruntJS学习(转)
- Sql获取周、月、年的首尾时间。
- Linux Shell编程基础
- Javascript:常用函数封装
- DBA需要掌握的shell知识
- WordPress的神器
- 最简puremvc
- bower的权限问题
- C# 温故而知新:Stream篇(—)
- JTAG上有多个设备时,该如何接呢?
- HTTP协议 --- 图解三次握手过程
- Linux三剑客-AWK
- lateinit 的使用限制
- ubuntu 18.04安装clojure工程的cli工具lein
- 如何在WCF中用TcpTrace工具查看发送和接收的SOAP消息
- Android系统定制和源码开发以及源码编译(附视频)
- jenkins 添加 k8s 云
- spring cloud 服务发现
- svg压缩工具svgo安装使用
- WordPress插件会员简化1.58 -任意文件下载漏洞(附poc)
热门文章
- 在Asp.Net MVC 中如何用JS访问Web.Config中appSettings的值
- weibform中Application、ViewState对象和分页
- JQuery.validate.js 表单验证
- [转]MSI安装程序中的文件替换
- java中Map和List初始化的两种方法
- Logback_日志使用详解(转)
- 关于textarea中换行、回车、空格的识别与处理
- HTML5新特性——HTML 5 Canvas vs. SVG
- javascript的变量声明提升
- Android事件分发小结