SPI 驱动

SCLK    serial clock
MOSI    master out slave in
MISO    master in slave out
CS     chips select

写数据
//数据高位在前
//数据要在时钟上升沿前准备好
//主机写从机读

片选拉低,开始
时钟拉低
准备数据
时钟拉高,输出1位
共8位
片选拉高,结束

cs=0;
for(i=0;i<8;i++)
{
    sclk=0;
    if((dat & 0x80) ==1)    //判断数据最高位是否是1
    MOSI =1;
    else
    MOSI =0;
    sclk = 1;
    dat<<=1;
}
cs=1;


读数据
//数据高位在前
//数据上升沿后,再去读
//从机写主机读

片选拉低,开始
时钟拉低,再拉高,给上升沿信号
读数据,共8位
片选拉高,结束

cs=0;
for(i=0;i<8;i++)
{
    sclk=0;
    sclk = 1;
    dat<<=1;

    if((MISO & 0x01) ==1)    //判断数据是否是1
    dat | =0x01;
    else
    dat & =0xfe;

    
}
cs=1;
retrun dat ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值