OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 829|回复: 2

求救430与4线SPI读出的字节多一个Bit位

[复制链接]

43

主题

149

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
463
金钱
463
注册时间
2014-2-24
在线时间
58 小时
发表于 2017-11-9 10:07:58 | 显示全部楼层 |阅读模式
void SPI_Init()
{
        M_CS_out;
        M_SCK_out;
        M_SDO_out;
        M_SDI_in;
       
}
//向从机写一个8位的数据,同时读出30个bit位,前两个bit位不读。
long shiftbit(uchar nextch)
{
    uchar i=0;
    long data=0;

    M_CS_L;    //M_SDO_L;DelayNus(2);
    while(M_SDI_IN);
    for(i=0;i<2;i++)
    {
        if(nextch&0x80)
           M_SDO_H;
        else
           M_SDO_L;
        M_SCK_H;DelayNus(2);//_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();
        M_SCK_L;//DelayNus(2);
        nextch<<=1;
    }
    for(i=0;i<8;i++)//多写的两个bit位 don't care
    {
        if(nextch&0x80)
            M_SDO_H;
        else
            M_SDO_L;
        nextch<<=1;
        if(M_SDI_IN)
            data |= 1;
        data<<=1;        
        M_SCK_H;DelayNus(2);
        M_SCK_L;

    }
    for(i=0;i<8;i++)
    {
        if(M_SDI_IN)
           data |= 1;
        data<<=1;        
        M_SCK_H;DelayNus(2);//_NOP();_NOP();_NOP();
        M_SCK_L;
    }
    for(i=0;i<8;i++)
    {
        if(M_SDI_IN)
            data |= 1;
        data<<=1;        
        M_SCK_H;DelayNus(2);//_NOP();_NOP();_NOP();
        M_SCK_L;
    }
    for(i=0;i<6;i++)
    {
        if(M_SDI_IN)
            data |= 1;
        data<<=1;        
        M_SCK_H;DelayNus(2);//_NOP();_NOP();_NOP();
        M_SCK_L;
    }
        DelayNus(2);
    M_CS_H;
    return data;
}
以上是基于430的SPI程序,此程序在430单片机里读到的数据都是多一个bit位,但是用逻辑仪观察的时候数据都是正常的,所以不知道是什么情况,希望前辈们指点指点。多谢大家。

回复

使用道具 举报

43

主题

149

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
463
金钱
463
注册时间
2014-2-24
在线时间
58 小时
 楼主| 发表于 2018-11-15 13:42:08 | 显示全部楼层
问题已解决,SPI有四种模式,选对模式就OK了,之有不太理解这个东西,呵呵
回复 支持 反对

使用道具 举报

0

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2019-3-26
在线时间
9 小时
发表于 2019-4-9 15:26:01 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

正点原子STM32/FPGA资料免费下载上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2019-5-23 07:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */