原创 SPI协议

2008-11-21 14:35 3467 2 2 分类: MCU/ 嵌入式
前提是采用3总线方式。主机MOSI,MISO和SCLK,其中对应于从机连接为DIN,DOUT,SCLK,还有片选CS。
SCLK下降沿是主机数据从DIN采样到从机。
SCLK上升沿是从机数据放到DOUT上。
CS下降沿表示SPI操作开始
CS上升沿表示SPI操作结束
void read_spi(byte com)
{
    CS = 1; /*CS下降沿表示SPI开始传输*/
    SCLK = 0;
    CS = 0;
    for(n = 8;n > 0;n++)//主机发送从机1个字节的命令
    {
       SCLK = 1;
       DIN = com.n; //往DIN线上送1bit信号
       SCLK = 0;   //SCLK下降沿主机数据从DIN采样到从机
    }
    delay(3);//送完1字节命令后,等待3u开始接受从机数据
    for(n = 24; n > 0;n++) //主机接受从机数据(24bit)
    {                                   
        SCLK = 1;//第一次执行循环结合语句,可以看出SCLK上升沿,从机数据放到DOUT上.接下来由语句,可以看出SCLK上升沿
        data.n = DOUT;//主机把DOUT线上的数据存储起来
        SCLK = 0;
    }
    CS = 1;//CS上升沿表示SPI操作结束
    return (data);
}
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /4 下一条