一、实验内容:

  通过串口发送单个字符到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] 7、基础实验代码解析大全(前十)

[nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI

[nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC

[nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC


@beautifulzzzz - 物联网&普适计算实践者
e-mail:beautifulzzzz@qq.com 
i-blog:blog.beautifulzzzz.com

最新文章

  1. [安卓] 14、安卓HTTP——POST和GET用法分析
  2. 动手动脑之查看String.equals()方法的实现代码及解释
  3. Jordan Lecture Note-1: Introduction
  4. contentSize、contentInset和contentOffset
  5. springmvc国际化 基于浏览器语言的国际化配置
  6. ElasticSearch(5)-Mapping
  7. MATLAB(5)——生成归一化直方图
  8. MySQL定时逻辑备份
  9. ecshop中smarty比较操作符(eq,ne,neq)含义
  10. jquery定时刷新数据
  11. Memcached操作
  12. net core中动态给log4net添加日志类型
  13. mybatis自动生成mapper和pojo
  14. 三种方式解决你的js加载乱码
  15. Spring AspectJ切入点语法详解
  16. PHP-note
  17. c# 处理js序列化时 datetime返回UTC格式的问题
  18. Softmax回归(Softmax Regression, K分类问题)
  19. 【反思】一个价值两天的BUG,无论工作还是学习C语言的朋友都看看吧!
  20. &lt;J2EE学习笔记&gt;关于Servlet的讲义

热门文章

  1. HDU 5945 / BestCoder Round #89 1002 Fxx and game 单调队列优化DP
  2. 多个jar包合并成一个jar包的办法
  3. UVA 12300 Smallest Regular Polygon(正多边形)
  4. windows7 64位下环境搭建scrapy爬虫框架
  5. datatable 加序号列
  6. Python爬虫学习(7):浙大软院网号嗅探
  7. vs2012 发布web应用程序
  8. Fancybox丰富的弹出层效果
  9. C++文件操作(fstream)
  10. VS2013开启滚动条缩略图和双击选中高亮,效果杠杠滴!