资源简介
51MCU读写W25X16 W25Q16

代码片段和文件信息
#include “stm32f10x_lib.h“
#include “UserHead.h“
#include “W25Q16.h“
/**********************************************************
** function name : FlashInterfaceInit
** description : config SPI1
** input parameter: none
** return : none
***********************************************************/
void FlashInterfaceInit(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
//Enable SPI1 and GPIOA clocks
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1|RCC_APB2Periph_GPIOA ENABLE);
/*Configure SPI2 pins: NSS SCK MISO and MOSI */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA &GPIO_InitStructure);
//Configure SPI1 pins: NSS SCK MISO and MOSI
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; // Configure PA4 as Output push-pull used as sst25vf16 Chip select
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA &GPIO_InitStructure);
Flash_CS_1; //Chip DeSelect
//SPI1 configuration
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16; //8分频,如果是36MHz时钟,则SPI串行时钟的频率是4.5MHz
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI1 &SPI_InitStructure);
SPI_Cmd(SPI1 ENABLE); // Enable SPI1
// EWSR();
// WRSR(0);
// WRDI();
}
/*****************************************************************
** function name : SPISendByte
** description : SPI1 send one byte
** input parameter: byte to be sent
** return : byte received
******************************************************************/
uint8 SPISendByte(uint8 cData)
{
while ((SPI1->SR & SPI_I2S_FLAG_TXE) == RESET);
while ((SPI1->SR & SPI_I2S_FLAG_BSY) == SET);
SPI1->DR = cData;
while((SPI1->SR & SPI_I2S_FLAG_RXNE) == RESET);
while((SPI1->SR & SPI_I2S_FLAG_BSY) == SET);
return SPI1->DR;
}
/*****************************************************************
** function name : SPIReceiveByte
** description : SPI1 receive byte
** input parameter: none
** return : byte received
******************************************************************/
uint8 SPIReceiveByte(void)
{
//uint8 i;
//i=SPI1->DR;
while((SPI1->SR & SPI_I2S_FLAG_TXE) == RESET);
while((SPI1->SR & S
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7752 2010-09-04 10:29 W25Q16\W25Q16.c
文件 932 2010-09-04 10:29 W25Q16\W25Q16.h
目录 0 2010-12-14 17:37 W25Q16
----------- --------- ---------- ----- ----
8684 3
相关资源
- 51 单片机 红外避障小车 大集合136
- 最新的北京地铁shp文件75146
- 程序员专用字体YaHei.Consolas.1.11b42517
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- 清翔电子MCS51开发板资料_新版 01_开发
- MCS_51单片机与8255A的接口设计
- Rtx51_tiny_RTOS中文版.pdf
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- proteus仿真 AT89C51输出各种波形
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- NRF24L01实现51与STM32双向通讯
- 基于c8051f020的AD转换程序及LCD显示程序
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 课程设计蔬菜大棚自动控制系统,包
- 基于AT89C51的数据采集系统设计新方法
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 基于89c51的数字钟
- 8251 全双工异步通信
- 8051F040SMBUS多机通信
评论
共有 条评论