91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-23
  • 語言: 其他
  • 標簽: STM32??FM25CL64B??

資源簡介

STM32和FM25CL64B 鐵電存儲器 SPI接口

資源截圖

代碼片段和文件信息

/****************************************************************************
*?文件名:?FM25CL64B.c
*?內容簡述:?本模塊實現鐵電存儲器數據的讀寫  使用用SPI方式 最大20MHZ
* 即在72M主頻下 最快可以設置為4分頻=18MHZ  
*?文件歷史:
*?版本號??日期???????作者????說明
*?v0.1????2012-5-8??hnren??創建該文件
*
*/

/*?Includes?------------------------------------------------------------------*/
#include??“FM25CL64.h“

#define?FM25CL64_WREN_INST???0x06???//寫使能
#define?FM25CL64_WRDI_INST???0x04???//寫失能
#define?FM25CL64_RDSR_INST???0x05???//讀狀態寄存器
#define?FM25CL64_WRSR_INST???0x01???//寫狀態寄存器
#define?FM25CL64_WRITE_INST??0x02???//寫數據
#define?FM25CL64_READ_INST???0x03???//讀數據
#define?FM25CL64_STATUS_REG??0x00???//狀態寄存器數據 清空
#define?FM25CL64_INIT_INST???0x09???//


//-------只要配置此處就可以通信--------
#define?FM25CL64_SPI??SPI1??????????//使用SPI幾的方式
#define?FM25CL64_CS_HIGH()??GPIOB->BSRR=GPIO_Pin_0|GPIO_Pin_1;???
#define?FM25CL64_CS_LOW()???GPIOB->BRR=GPIO_Pin_1;???
//-------------------------------------


//向FLASH中寫入一個字節數據(ZJ)
static?u8?FM25CL64_SPI_Byte(u8?Temp);
//1.?讀狀態
static?u8?ReadState();
//2.?檢測讀狀態
static?u8?Check_Start();
//3.?寫使能
static?void?WriteEnable();
//4.?寫狀態
static?void?WriteState();


//向FLASH中寫入一個字節數據(ZJ)
static?u8?FM25CL64_SPI_Byte(u8?Temp)?
{????????????????
??/*等待發送寄存器空*/
??while((FM25CL64_SPI->SR?&?SPI_I2S_FLAG_TXE)==RESET);
??/*發送一個字節*/
??FM25CL64_SPI->DR?=?Temp;
??/*?等待接收寄存器有效*/
??while((FM25CL64_SPI->SR?&?SPI_I2S_FLAG_RXNE)==RESET);
??return?(FM25CL64_SPI->DR);
}


//1.?讀狀態
static?u8?ReadState()
{
??u8?r;
??FM25CL64_CS_LOW();
??r=FM25CL64_SPI_Byte(FM25CL64_RDSR_INST);
??r=FM25CL64_SPI_Byte(0);
??FM25CL64_CS_HIGH();
??return(r);
}

//2.?檢測讀狀態
static?u8?Check_Start()
{
??u8?i=0r=255;
??do?
??{
????r=ReadState();
????i++;
??}?while?((r&0x01)&&?i<254);
??if?(i>=254)
????return?1;
??
??return?0;
}

//3.?寫使能
static?void?WriteEnable()
{
??FM25CL64_CS_LOW();
??FM25CL64_SPI_Byte(FM25CL64_WREN_INST);
??FM25CL64_CS_HIGH();
}

//4.?寫狀態<---- 基本沒什么用
static?void?WriteState()
{
??WriteEnable();
??FM25CL64_CS_LOW();
??FM25CL64_SPI_Byte(FM25CL64_WRSR_INST);
??FM25CL64_SPI_Byte(FM25CL64_STATUS_REG);
??FM25CL64_CS_HIGH();
??Check_Start();
}

//5.?讀存儲器內容子程序
u8?Read_FM25CL64_Byte(u16?addre)
{
??u8?dat;
??FM25CL64_CS_LOW();
??FM25CL64_SPI_Byte(FM25CL64_READ_INST);
??FM25CL64_SPI_Byte((addre&0xFF00)>>8);
??dat=FM25CL64_SPI_Byte((addre&0x00FF));
??dat=FM25CL64_SPI_Byte(0);
??FM25CL64_CS_HIGH();
??return(dat);
}

//6.?讀存儲器內容子程序(多字節)
u8?Read_FM25CL64_nByte(u16?addreu8*?buffu16?len)
{
??u8?dat=0;
??FM25CL64_CS_LOW();
??FM25CL64_SPI_Byte(FM25CL64_READ_INST);
??FM25CL64_SPI_Byte((addre&0xFF00)>>8);
??FM25CL64_SPI_Byte((addre&0x00FF));
??for?(int?i=0;i??{
????buff[i]=FM25CL64_SPI_Byte(0);
??}
??FM25CL64_CS_HIGH();
??return(dat);
}
//7.?寫存儲器內容子程序
u8?Write_FM25CL64_Byte(u16?addreu8?dat)
{
??WriteEnable();
??FM25CL64_CS_LOW();
??FM25CL64_SPI_Byte(FM25CL64_WRITE_INST);
??FM25CL64_SPI_Byte((addre&

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????3701??2012-06-19?16:05??FM25CL64B\FM25CL64.c
?????文件?????????346??2012-12-29?15:19??FM25CL64B\FM25CL64.h
?????目錄???????????0??2012-07-11?09:01??FM25CL64B\

評論

共有 條評論