欢迎来到天天文库
浏览记录
ID:37774816
大小:35.97 KB
页数:19页
时间:2019-05-30
《MCU的GPIO模拟SPI源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MCU的GPIO模拟SPI源代码写程序:voidSPIx_WriteByte(u8TxData){u8j=0;SPI_FLASH_CLK_LOW();//clk=0if(TxData&0x80){SPI_FLASH_DI_HIGH();}//mosi=1else{SPI_FLASH_DI_LOW();}//mosi=0for(j=0;j<3;j++);//延时SPI_FLASH_CLK_HIGH();//clk=1,一个上升沿写入一位for(j=0;j<5;j++);//延时SPI_FLASH_CLK_LOW()
2、;//clk=0if(TxData&0x40){SPI_FLASH_DI_HIGH();}//mosi=1else{SPI_FLASH_DI_LOW();}//mosi=0for(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=1else{SPI_FLASH_DI_LOW();}//mosi=0for(j=0;j<3;j++)
3、;//延时SPI_FLASH_CLK_HIGH();for(j=0;j<5;j++);SPI_FLASH_CLK_LOW();if(TxData&0x10){SPI_FLASH_DI_HIGH();}//mosi=1else{SPI_FLASH_DI_LOW();}//mosi=0for(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();}//
4、mosi=1else{SPI_FLASH_DI_LOW();}//mosi=0for(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=1else{SPI_FLASH_DI_LOW();}//mosi=0for(j=0;j<3;j++);//延时SPI_FLASH_CLK_HIGH();for(j=0;j<5;j++);SPI_
5、FLASH_CLK_LOW();if(TxData&0x02){SPI_FLASH_DI_HIGH();}//mosi=1else{SPI_FLASH_DI_LOW();}//mosi=0for(j=0;j<3;j++);//延时SPI_FLASH_CLK_HIGH();for(j=0;j<5;j++);SPI_FLASH_CLK_LOW();//clk=0if(TxData&0x01){SPI_FLASH_DI_HIGH();}else{SPI_FLASH_DI_LOW();}for(j=0;j<3;j++);
6、//延时SPI_FLASH_CLK_HIGH();//clk=1for(j=0;j<3;j++);//延时SPI_FLASH_CLK_LOW();//clk=0}读程序0x80==0x80u8SPIx_ReadByte(void){u8i=0,j=0;for(j=0;j<3;j++);//延时SPI_FLASH_CLK_HIGH();//clk=1if(GPIOC->IDR&0x80==0x80){i=i+0x80;}for(j=0;j<3;j++);//延时SPI_FLASH_CLK_LOW();//clk=0
7、,下降沿读数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_HIGH();if(GPIOC->IDR&0x80==0x80){i=i+0x20;}for(j=0;j<3;j++);//延时SPI_FLASH_CLK_LOW();for(j=0;j<5;j++);SPI_FL
8、ASH_CLK_HIGH();if(GPIOC->IDR&0x80==0x80){i=i+0x10;}for(j=0;j<3;j++);//延时SPI_FLASH_CLK_LOW();for(j=0;j<5;j++);SPI_FLASH_CLK_HIGH();if(GPIOC->IDR&0x80==0x80){i=i+0x08;}for(j=0;j<3;j++);//延时
此文档下载收益归作者所有