三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 375|回复: 0
打印 上一主题 下一主题

w25q64.c源码分析

[复制链接]

1657

主题

1684

帖子

5684

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5684
跳转到指定楼层
楼主
发表于 2017-6-12 15:27:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文件名称:w25q64.c
文件路径:contiki-3.0\examples\sm14z2538\w25q64
源码分析:
引用系统头文件
  1. #include "contiki.h"
复制代码
w25q64驱动
  1. #include "dev/w25q64-arch.h"
复制代码
输入输出库引用

  1. #include <stdio.h> /* For printf() */
复制代码
定义字符串
  1. const uint8_t TEXT_Buffer[]={"CC2538 SPI TEST W25Q64F"};
复制代码
计算文本缓冲区大小
  1. #define SIZE sizeof(TEXT_Buffer)
复制代码
声明一个进程
  1. PROCESS(w25q64_process, "W25Q64");
复制代码
系统初始化的时候自动启动这个进程
  1. AUTOSTART_PROCESSES(&w25q64_process);
复制代码
进程实现
  1. PROCESS_THREAD(w25q64_process, ev, data)
  2. {
  3.   //进程开始
  4.   PROCESS_BEGIN();
  5.   //定义数组缓冲区
  6.   unsigned char datatemp[SIZE];
  7.   //flsh字节
  8.   unsigned int FLASH_SIZE;
  9.   //创建时间定时器对象
  10.   static struct etimer et;
  11.   //设置定时器的时间
  12.   etimer_set(&et, CLOCK_SECOND);
  13.   //flash初始化
  14.   SPI_Flash_Init();
  15.   //读取flsh的id
  16.   while(SPI_Flash_ReadID()!=W25Q64)
  17.   {
  18.      printf(" SPI_Flash is error!\n");
  19.   }
  20.   //输出flash的信息
  21.   printf("SPI_Flash ID:%x\r\n\n",SPI_FLASH_TYPE);
  22.   FLASH_SIZE=8*1024*1024;

  23.   printf("Write_Flash_Data:\r\n");
  24.   //将字符串保存到flash中
  25.   SPI_Flash_Write((unsigned char*)TEXT_Buffer,FLASH_SIZE-100,SIZE);
  26.   //输出保存的字符串
  27.   printf("%s\r\n\n", TEXT_Buffer);
  28.   while(1) {
  29.     //等待定时器事件
  30.     PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
  31.     //恢复定时器
  32.     etimer_reset(&et);
  33.     //输出读取flash数据信息
  34.     printf("Read_Flash_Data:\r\n");
  35.     //读取flash中的字符串
  36.     SPI_Flash_Read(datatemp,FLASH_SIZE-100,SIZE);
  37.     //输出flash字符串信息
  38.     printf("%s\r\n\r\n", datatemp);
  39.   }
  40.   //进程结束
  41.   PROCESS_END();
  42. }

复制代码



回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2026-3-13 00:04 , Processed in 0.025616 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表