-
大小: 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设计规范
- 下一篇:网上订餐系统数据库设计方案
相关资源
- 基于STM32F4x9的LCD显示
- VS1053B编解码器的VDR分布式声音采集卡
- stm32的DAC播放音乐文件
- STM32+TMC5160代码电路图.rar
- 基于STM32的深海钻机甲板控制系统
- stm32f103.SchDoc
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- 基于STM32的嵌入式双目图像采集系统设
- 基于STM32F103C8单片机的晶联讯电子JL
- 基于STM32的温湿度检测系统实现
- stm32F4+w5300
- 14284969_《STM32单片机应用与全案例实践
-
ST-li
nk-V2的SWD仿真使用方法.docx - 安富莱STM32开发板资料
- STM32F103实现OV7670摄像头显示
- STM32F207学习板例程
- STM32F103VCT6TR - High-density performance lin
- STM32 SRAM启动的 KeiL 配置
- STM32的IAP-Bootloader程序
- STM32例程之Bootloader
- stm32f103 虚拟U盘,调试成功的
- 基于stm32F103vct6的SD卡FATFS文件系统移植
- STM32F030从机中断接收的iic代码,附带
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32+1602液晶proteus仿真.zip
- STM32循迹小车
评论
共有 条评论