资源简介
The Adesto® AT25SF081 is a serial interface Flash memory device designed for use in a wide variety of high-volume
consumer based applications in which program code is shadowed from Flash memory into embedded or external RAM
for execution
代码片段和文件信息
#include “hal_defs.h“
#include “hal_cc8051.h“
#include “hal_mcu.h“
#include “hal_uart.h“
#include “AT25SF081.h“
#include “define.h“
#define FLASH_CS_H MCU_IO_OUTPUT(011)
#define FLASH_CS_L MCU_IO_OUTPUT(010)
#define FLASH_MOSI_H MCU_IO_OUTPUT(041)
#define FLASH_MOSI_L MCU_IO_OUTPUT(040)
#define FLASH_SCL_H MCU_IO_OUTPUT(051)
#define FLASH_SCL_L MCU_IO_OUTPUT(050)
#define FLASH_MISO_IN MCU_IO_INPUT(0 6MCU_IO_PULLUP)
#define FLASH_MISO_VALUE MCU_IO_GET(06)
#define FLASH_WRITE_ENABLE FLASH_CS_L;\
halMcuWaitUs(1);\
flash_spi_write(0x06);\
FLASH_CS_H;
#define FLASH_WRITE_Disable FLASH_CS_L;\
halMcuWaitUs(1);\
flash_spi_write(0x04);\
FLASH_CS_H;
uint8 id1id2id3;
uint8 flash_spi_init(){
FLASH_CS_H;
FLASH_MISO_IN;
FLASH_MOSI_L;
FLASH_SCL_L;
ReadID(&id1&id2&id3);
if(id1==0x1F&&id2==0x85&&id3==0x01)
return 1;
return 0;
}
//MSB
void flash_spi_write(uint8 value){
uint8 i;
for(i=0;i<8;i++){
FLASH_SCL_L;
if((value< FLASH_MOSI_H;
}else{
FLASH_MOSI_L;
}
halMcuWaitUs(1);
FLASH_SCL_H;
halMcuWaitUs(1);
}
}
//MSB
uint8 flash_spi_read(){
uint8 ivalue=0;
for(i=0;i<8;i++){
FLASH_SCL_L;
halMcuWaitUs(1);
if(FLASH_MISO_VALUE){
value|=1<<(7-i);
}else{
value|=0<<(7-i);
}
FLASH_SCL_H;
halMcuWaitUs(1);
}
return value;
}
void ReadID(uint8 *id1 uint8 *id2uint8 *id3)
{
FLASH_SCL_H;
FLASH_CS_L;
halMcuWaitUs(1);
flash_spi_write(0x9F); // 读ID的指令
flash_spi_write(0x00);
flash_spi_write(0x00);
flash_spi_write(0x00);
*id1 = flash_spi_read();
*id2 = flash_spi_read();
*id3 = flash_spi_read();
FLASH_CS_H;
}
//从任意内存地址写入(地址范围0x000000-0xFFFFFF)每一块的长度为256字节,写入长度不能超过写入地址的地址块长度
uint8 flashWriteDatas(uint32 addr uint8 *pdata uint16 len){
uint16 i;
uint32 addr_16 addr_8 addr_0;
addr_16 = addr/65536;
addr_8 = addr/256;
addr_0 = addr%256;
if(len == 0 || addr_0+len > 256)
return 0;
FLASH_WRITE_ENABLE;
FLASH_SCL_H;
FLASH_CS_L;
halMcuWaitUs(1);
flash_spi_write(0x02); // 写数据的指令
flash_spi_write((addr_16)&0xFF); // 24位写入的地址
flash_spi_write((addr_8)&0xFF); // 24位写入的地址
flash_spi_write((addr_0)); // 24位写入的地址
for(i=0; i {
flash_spi_write(pdata[i]);
}
FLASH_CS_H;
WaiteNotBusy();
return len;
}
uint8 flashReadDatas(uint32 addr uint8
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4375 2018-12-05 18:08 AT25SF081\AT25SF081.c
文件 374 2018-12-05 18:02 AT25SF081\AT25SF081.h
文件 3427016 2018-12-05 14:25 AT25SF081\DS-AT25SF081_045.pdf
文件 0 2018-12-05 18:20 AT25SF081\新建文本文档.txt
目录 0 2018-12-05 18:20 AT25SF081
----------- --------- ---------- ----- ----
3431765 5
- 上一篇:不经意传输(OT)协议的发展历程
- 下一篇:谷歌插件离线版sense.crx
相关资源
- 图书管理系统简单的“文件”实现数
- STM32 RFID RC522 模拟SPI 读写卡程序
- 小区电动车充电桩设备.zip
- keil下51单片机程序的烧写过程
- 2017年电子设计大赛专科组简易水清检
- 编程珠玑中文版及源码
- MISRA C 2012 Specifications,MISRA C 2012 协议
- 基于linux在线电子词典
- 32F103测频
- 基于单片机的室内空气净化系统
- C程序设计语言 第二版新 PDf (绝对超
- 软件模拟SPI读写W25Q128
- 基于Linux的设备分配及磁盘调度
- 基于Linux系统的航班信息与订票系统
- C安全编码标准中文版
- 动态称重,四节称 源码,
- C程序设计第四版.谭浩强(带详细书签
- [BUPT]计算导论OJ上机题参考源代码 +
- STM32F103+四个VL53L0代码2020新.zip
- 高级语言程序设计.迟成文
- C程序设计语言第2版·新版习题解答
- 固高控制例程
- OpenGL编程指南原书第9版高清完整版
- STM32与ZigBee串口通信LCD显示程序
- stm32智能安防系统
- 华为公司各种设计规范
- 深入理解C指针(带书签完整版)
- OPENCV中团块跟踪
- 用51单片机与LCD12864实现俄罗斯方块游
- C程序设计语言(第2版 新版) 带书签
评论
共有 条评论