本帖最后由 与龙共舞 于 2018-6-26 17:35 编辑 今天焊接了SPI_FLASH W25Q64 STM32代码写起来也是很容易就成功了。 多看了一眼,有一个禁止写的函数,于是自己尝试了一下。7 d# l* M* x" J+ q4 x' A5 ~ 结果,好像并没有work,依旧是可以写进去的。9 v3 X& c: q. N& r u8 TEXT_Buffer[100]={"this is my 1 spi program!cache\n"};/ g$ R; w" n/ J2 _3 u8 o9 F) A u8 Back_Buffer[100]={0};6 Y( U6 w9 ? y: l % s! \- Q) m) s9 ~4 q' r W25QXX_Init(); W25QXX_Erase_Sector(W25_Sector0); W25QXX_Write_Disable();//这句话貌似没用 W25QXX_Write(TEXT_Buffer,W25_Sector1,100); W25QXX_Read(Back_Buffer,W25_Sector1,100); " x; @; C# j# s. q ; t0 ?: k" u5 k; h8 i, V5 w I0 U* l! [* S1 w //W25QXX写禁止 6 ~, f% t! W* q, K6 i //将WEL清零 void W25QXX_Write_Disable(void) { ) f; Y& t6 H% O3 ?* x7 _ W25QXX_CS=0; //使能器件 SPI2_ReadWriteByte(W25X_WriteDisable); //发送写禁止指令 ) n* f; }) S. |9 F( W) N% L7 p W25QXX_CS=1; //取消片选 } 后来看了下,每次写函数里面,都会提前使能写的,6 y# c$ K3 I) X+ e void W25QXX_Write_Page(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)4 b/ A. d: B% P6 I _9 j { u16 i; : q* Y! Q" G' w+ Z, R/ r W25QXX_Write_Enable(); ( n c& g; U+ g0 e; Y$ @ 。。。6 b3 P, G' a( d5 d }$ l( C: \: T# i4 Y. U* d+ a6 r 哎 这家伙哦0 d8 W6 Q, P1 S* x4 T% D: e " X) @+ x V6 L9 ? |
有点意思,你这是哪个版本的库函数? |
哈哈哈,这算正常吧,禁止写操作是防止意外写入某些数据,你既然调用了写函数当然要先使能写操作,这也是无可厚非的 |
没用过禁止写指令,一般用来做什么? |
哈哈,这是库函数设计人员的思路 |