|
本帖最后由 与龙共舞 于 2018-6-26 17:35 编辑 今天焊接了SPI_FLASH W25Q64 STM32代码写起来也是很容易就成功了。 多看了一眼,有一个禁止写的函数,于是自己尝试了一下。 结果,好像并没有work,依旧是可以写进去的。5 o( A8 s# Z/ ~4 Z) N6 F/ _5 F u8 TEXT_Buffer[100]={"this is my 1 spi program!cache\n"}; u8 Back_Buffer[100]={0}; 7 {/ k6 o- o. F, K- @ W25QXX_Init(); W25QXX_Erase_Sector(W25_Sector0);, g, U7 [2 d: g8 H' `( W7 T W25QXX_Write_Disable();//这句话貌似没用1 M& v. J* _" O: |0 o W25QXX_Write(TEXT_Buffer,W25_Sector1,100); W25QXX_Read(Back_Buffer,W25_Sector1,100); 3 k/ |) ]! ^$ ^% l2 C7 m 3 S" d9 w- k3 {# u% t& C5 Y - o" e* E) }" Z( _5 i0 X //W25QXX写禁止 //将WEL清零 void W25QXX_Write_Disable(void) 5 _8 }4 R7 U2 [) c& j { W25QXX_CS=0; //使能器件 % Y1 b1 s( p! A P1 x SPI2_ReadWriteByte(W25X_WriteDisable); //发送写禁止指令 W25QXX_CS=1; //取消片选 / K& m. j+ F* m3 O& E; w } 后来看了下,每次写函数里面,都会提前使能写的,' }# t4 k1 y s! H7 o8 w void W25QXX_Write_Page(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)! |! ^; m* c. v0 n/ ^- P# N% P {" G6 B. I9 p1 H u16 i; W25QXX_Write_Enable(); 。。。3 Q5 B" c9 t& Z }9 {# ~3 c8 b- g! d # l Y8 {! u* p8 ^- Q% o7 W 哎 这家伙哦( J6 c5 T( S& \/ H |
| 有点意思,你这是哪个版本的库函数? |
| 哈哈哈,这算正常吧,禁止写操作是防止意外写入某些数据,你既然调用了写函数当然要先使能写操作,这也是无可厚非的 |
| 没用过禁止写指令,一般用来做什么? |
| 哈哈,这是库函数设计人员的思路 |
微信公众号
手机版