|
|
文件名称:w25q64.c
文件路径:contiki-3.0\examples\sm14z2538\w25q64
源码分析:
引用系统头文件
w25q64驱动
- #include "dev/w25q64-arch.h"
复制代码 输入输出库引用
- #include <stdio.h> /* For printf() */
复制代码 定义字符串- const uint8_t TEXT_Buffer[]={"CC2538 SPI TEST W25Q64F"};
复制代码 计算文本缓冲区大小
- #define SIZE sizeof(TEXT_Buffer)
复制代码 声明一个进程- PROCESS(w25q64_process, "W25Q64");
复制代码 系统初始化的时候自动启动这个进程
- AUTOSTART_PROCESSES(&w25q64_process);
复制代码 进程实现
- PROCESS_THREAD(w25q64_process, ev, data)
- {
- //进程开始
- PROCESS_BEGIN();
- //定义数组缓冲区
- unsigned char datatemp[SIZE];
- //flsh字节
- unsigned int FLASH_SIZE;
- //创建时间定时器对象
- static struct etimer et;
- //设置定时器的时间
- etimer_set(&et, CLOCK_SECOND);
- //flash初始化
- SPI_Flash_Init();
- //读取flsh的id
- while(SPI_Flash_ReadID()!=W25Q64)
- {
- printf(" SPI_Flash is error!\n");
- }
- //输出flash的信息
- printf("SPI_Flash ID:%x\r\n\n",SPI_FLASH_TYPE);
- FLASH_SIZE=8*1024*1024;
- printf("Write_Flash_Data:\r\n");
- //将字符串保存到flash中
- SPI_Flash_Write((unsigned char*)TEXT_Buffer,FLASH_SIZE-100,SIZE);
- //输出保存的字符串
- printf("%s\r\n\n", TEXT_Buffer);
- while(1) {
- //等待定时器事件
- PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
- //恢复定时器
- etimer_reset(&et);
- //输出读取flash数据信息
- printf("Read_Flash_Data:\r\n");
- //读取flash中的字符串
- SPI_Flash_Read(datatemp,FLASH_SIZE-100,SIZE);
- //输出flash字符串信息
- printf("%s\r\n\r\n", datatemp);
- }
- //进程结束
- PROCESS_END();
- }
复制代码
|
|