关于SPI

简介

一般主从方式工作,这种模式通常有一个主设备和一个或多个从设备,通常采用的是4根线,它们是MISO(Master in Salve out)、MOSI(主输出,从输入)、SCLK(时钟,主机产生)、CS/SS(片选,一般由主机发送或者直接使能,通常为低电平有效)

参考 软件模拟SPI接口程序代码(4种模式)_淡水鱼-CSDN博客_模拟spi

软件模拟SPI

管脚初始化

SCLK,MOSI,CS 设置为GPIO_Mode_Out_PP 推挽输出

MISO 设置为GPIO_Mode_IPU 上拉输入

读写数据函数

uint8_t Soft_Spi_SendBytes(uint8_t byte)

{

    uint8_t i,rvalue;

    __set_PRIMASK(1);//关中断

    GPIO_ResetBits(SPIPORT,SPICLK);

    for(i = 0;i < 8;i++)

    {

        //发送数据

        if((byte<<i)&0x80) GPIO_SetBits(SPIPORT,SPIMOSI);

        else GPIO_ResetBits(SPIPORT,SPIMOSI);

        GPIO_SetBits(SPIPORT,SPICLK);//上升沿

        GPIO_ResetBits(SPIPORT,SPICLK);//拉低时钟

        //接收数据

        if(GPIO_ReadInputDataBit(SPIPORT,SPIMISO)) rvalue |= (i << (7 - i));

    }

    __set_PRIMASK(1);//开中断

    return (rvalue);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值