-
大小: 2KB文件类型: .zip金币: 2下载: 1 次发布日期: 2021-05-16
- 语言: 其他
- 标签: stm32 MX25L MX25L25673
资源简介
smt32 上面 MX25L25673 驱动,支持DMA读。
可以配置锁。使用32位地址

代码片段和文件信息
#include “stm32f1xx_hal.h“
#include “cmsis_os.h“
#include “main.h“
#include “MX25LXX.h“
/*****************************************************/
extern SPI_HandleTypeDef hspi1;
#define MX25XX_SPI hspi1
#define MX25LxxCS(x) HAL_GPIO_WritePin(SPI1_CS_GPIO_PortSPI1_CS_Pinx)
#define MX25LxxLockEnable 1
#define MX25Lxx4BytesMode 1
/*****************************************************/
/******************flash cmd *************************/
#define COMMAND_WREN 0x06
#define COMMAND_WRDI 0x04
#define COMMAND_RDSR 0x05
#define COMMAND_WRSR 0x01
#define COMMAND_READ 0x03
#define COMMAND_FREAD 0x0B
#define COMMAND_FREAD4B 0x0C
#define COMMAND_READ4B 0x13
#define COMMAND_PP4B 0x12
#define COMMAND_SE4B 0x21
#define COMMAND_EN4B 0xB7
#define COMMAND_RDSCUR 0x2B
#define COMMAND_RSTQIO 0xF5
#define COMMAND_WRITE 0x02
#define COMMAND_RDID 0x9F
#define COMMAND_SE 0x20 //sector erase
#define COMMAND_BE 0x52 //block erase
#define COMMAND_CE 0x60 //chip erase
#define COMMAND_RDCR 0x15
#define STATUS_WIP 0b00000001
#define STATUS_WEL 0b00000010
#define STATUS_BP0 0b00000100
#define STATUS_BP1 0b00001000
#define STATUS_BP2 0b00010000
#define STATUS_BP3 0b00100000
#define STATUS_RES 0b01000000
#define STATUS_SWRD 0b10000000
#define CONFIG_4BYTE 0b00100000
#define RDSCUR_P_FAIL 0b00100000
#define RDSCUR_E_FAIL 0b01000000
#define DUMMY 0xFF
/******************end flash cmd *********************/
#if MX25LxxLockEnable
static osMutexId MX25lxxMutex;
#define MX25LxxLock() osMutexWait(MX25lxxMutex osWaitForever)
#define MX25LxxUnLock() osMutexRelease(MX25lxxMutex)
#else
#define MX25LxxLock()
#define MX25LxxUnLock()
#endif
uint8_t MX25LxxConfigeRegister();
uint8_t MX25LxxStatus();
uint8_t MX25LxxRSTQIO();
int MX25LxxWriteEnable();
#if MX25Lxx4BytesMode
static int MX25LxxEnter4B();
#endif
static int MX25LxxWaitForDecieReady()
{
do{
if (IS_MASK_CLEAR(MX25LxxStatus() STATUS_WIP)) //wait write done
break;
}while(1);
return 0;
}
#if MX25Lxx4BytesMode
static int MX25LxxEnter4B()
{
uint8_t d[2] = {COMMAND_EN4B0};
MX25LxxLock() ;
MX25LxxCS(0);
HAL_SPI_Transmit(&MX25XX_SPId10xff);
MX25LxxCS(1);
MX25LxxUnLock();
MX25LxxWaitForDecieReady();
return 0;
}
#endif
int MX25LxxInit()
{
#if MX25LxxLockEnable
/* Create Mutex lock */
osMutexDef(MX25MUTEX);
/* Create the Mutex used by the two threads */
MX25lxxMutex = osMutexCreate(osMutex(MX25MUTEX));
#endif
#if MX25Lxx4BytesMode
MX25LxxEnter4B();
if(IS_MASK_SET( MX25LxxConfigeRegister() CONFIG_4BYTE) )
return 0;
//MX25LxxRSTQIO();
return -1;
#else
return 0;
#endif
}
/**
*Read chip id
*return chip id
**/
uint32_t MX25LxxReadChipID()
{
uint8_t d[4] = {COMMAND_RDID0};
MX25LxxLock();
MX25LxxCS(0);
HAL_SPI_Transmit(&MX25XX_SPId
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8538 2018-12-25 22:58 MX25LXX.c
- 上一篇:华为pcb设计规范
- 下一篇:网上订餐系统数据库设计方案
相关资源
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
评论
共有 条评论