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

  • 大小: 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

評論

共有 條評論