STM32学习笔记之软件模拟SPI

2019-07-20 22:10发布

    SPI的硬件的确非常好用,但往往我们会遇到不能用硬件的情况,最近写了一个软件模拟的程序,亲测可用,现在贴出来,分享给大家,希望对你们有帮助。(这个程序是针对CPOL=1,CPHA=1的情况,若用于其他情况,请适当修改SCK)
[mw_shl_code=c,true]/************************************************** 函数:SOFT_SPI_RW() 描述: 根据SPI协议,写一字节数据到从机,同时从从机 读出一字节 **************************************************/ u8 SOFT_SPI_RW(u8 byte) { u8 i,Temp=0; for(i=0;i<8;i++)     // 循环8次 { SPI1_SCK = 0;     //拉低时钟 if(byte&0x80) SPI1_MOSI = 1;                             //若最到位为高,则输出高 else       SPI1_MOSI = 0;                             //若最到位为低,则输出低 byte <<= 1;     // 低一位移位到最高位 SPI1_SCK = 1;     //拉高时钟 Temp <<= 1;     //数据左移 if(SPI1_MISO) Temp++;     //若从从机接收到高电平,数据自加一 SPI1_SCK = 0;     //拉低时钟 } return (Temp);     //返回数据 }[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
八度空间
1楼-- · 2019-07-21 03:55
谢谢分享!!!
正点原子
2楼-- · 2019-07-21 05:40
 精彩回答 2  元偷偷看……
ahsssxd
3楼-- · 2019-07-21 08:44
谢谢分享
naren_nashi
4楼-- · 2019-07-21 09:52
666
694225976
5楼-- · 2019-07-21 11:49
CPOL=1,CPHA=1是这样的  那要是 CPOL=0,CPHA=1应该怎么改呢
和埠岭扛把子
6楼-- · 2019-07-21 13:05
学习  学习

一周热门 更多>