写程序: void SPIx_WriteByte(u8 TxData) { u8 j=0; SPI_FLASH_CLK_LOW(); //clk=0 if(TxData&0x80) {SPI_FLASH_DI_HIGH();} //mosi=1 else {SPI_FLASH_DI_LOW();} //mosi=0 for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); //clk=1,一个上升沿写入一位 for(j=0;j<5;j++); //延时 SPI_FLASH_CLK_LOW(); //clk=0 if(TxData & 0x40) {SPI_FLASH_DI_HIGH();} //mosi=1 else {SPI_FLASH_DI_LOW();} //mosi=0 for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); for(j=0;j<5;j++); SPI_FLASH_CLK_LOW(); if(TxData&0x20) {SPI_FLASH_DI_HIGH();} //mosi=1 else {SPI_FLASH_DI_LOW();} //mosi=0 for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); for(j=0;j<5;j++); SPI_FLASH_CLK_LOW(); if(TxData&0x10) {SPI_FLASH_DI_HIGH();} //mosi=1 else {SPI_FLASH_DI_LOW();} //mosi=0 for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); for(j=0;j<5;j++); SPI_FLASH_CLK_LOW(); if(TxData&0x08) {SPI_FLASH_DI_HIGH();} //mosi=1 else {SPI_FLASH_DI_LOW();} //mosi=0 for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); for(j=0;j<5;j++); SPI_FLASH_CLK_LOW(); if(TxData&0x04) {SPI_FLASH_DI_HIGH();} //mosi=1 else {SPI_FLASH_DI_LOW();} //mosi=0 for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); for(j=0;j<5;j++); SPI_FLASH_CLK_LOW(); if(TxData&0x02) {SPI_FLASH_DI_HIGH();} //mosi=1 else {SPI_FLASH_DI_LOW();} //mosi=0 for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); for(j=0;j<5;j++); SPI_FLASH_CLK_LOW(); //clk=0 if(TxData&0x01) {SPI_FLASH_DI_HIGH();} else {SPI_FLASH_DI_LOW();} for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); //clk=1 for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_LOW(); //clk=0 } 读程序0x80==0x80 u8 SPIx_ReadByte(void) { u8 i=0,j=0; for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_HIGH(); //clk=1 if(GPIOC->IDR&0x80==0x80) {i=i+0x80;} for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_LOW(); //clk=0,下降沿读数 for(j=0;j<5;j++); SPI_FLASH_CLK_HIGH(); if(GPIOC->IDR&0x80==0x80) {i=i+0x40;} for(j=0;j<3;j++); //延时 SPI_FLASH_CLK_LOW(); for(j=0;j<5;j++); SPI_FLASH_CLK_H...