打印

DSP中的SPI编程求助 各位大神帮帮忙吧 小弟实在没辙了

[复制链接]
1032|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题:
小弟在调试DSP中的SPI编程,将MOSI和MISO接到一起没有接从设备,收到的数据和接收的数据完全不一样,代码如下所示,
示波器接入Clock也没有波形输出。
void ancInitSpiA(void)
{
        SpiaRegs.SPICCR.all=0x4F; //resume, Pol:1, 16bits
        SpiaRegs.SPICTL.all=0x06; //ClkPhrase:0,Master,Talk,IntDis
        SpiaRegs.SPIBRR=0x03; // LPSCLK/4
        SpiaRegs.SPIFFCT.all=0; //delay 0
        SpiaRegs.SPIPRI.bit.FREE=1; //free run
        SpiaRegs.SPICCR.all=0x8a;
} //End
void xmit(uint16 code)
{
        uint16 tempI;
        uint16 data;
        GpioDataRegs.GPASET.bit.GPIOA0=0;
        SpiaRegs.SPICCR.bit.CLKPOLARITY=1;
        SpiaRegs.SPICTL.bit.CLK_PHASE=0;
        GpioDataRegs.GPACLEAR.bit.GPIOA0=1; //CsCodec=0
        SpiaRegs.SPITXBUF=code;
    while(!SpiaRegs.SPISTS.bit.INT_FLAG);
        //tempI=SpiaRegs.SPIRXBUF; //Clear INT_FLAG
        //tempI=tempI;
        //while(!SpiaRegs.SPISTS.bit.INT_FLAG);
                data=SpiaRegs.SPIRXBUF;
        GpioDataRegs.GPASET.bit.GPIOA0=1; //Codec CS, high
} //EndGpioDataRegs.GPASET.bit.GPIOA0=1; //Codec CS, high
int main(void)
{
        ancInitSysCtrlRegs();
        EALLOW;
                GpioMuxRegs.GPAMUX.all=0x0000;
                GpioMuxRegs.GPADIR.all=0xFFF1;
                //GpioA14:CsCodec; GpioA15:ibutton
                //GpioA12:FmReset; GpioA11:FmCS; GpioA10:PwrOnC
                EDIS;
                GpioDataRegs.GPADAT.all=0xFFFF; //All to 1
                //GPIOB
                EALLOW;
                GpioMuxRegs.GPFMUX.all = 0x1FFF; //GPIOF14-XF_PLLDIS
                //GpioF13-9:Mcbsp, GpioF7-6:CanX, GpioF5-4:SCIA, GpioF3-0:SPIA
                EDIS;
           DINT;
           ancInitPieCtrl();
           IER = 0x0000;
           IFR = 0x0000;
           ancInitPieVectTable();
       ancInitSpiA();
       xmit(0x1192);
} //End of main
谢谢大家了

相关帖子

沙发
yanxiang1|  楼主 | 2018-3-26 21:29 | 只看该作者
仿真器的结果

111.png (29.58 KB )

111.png

使用特权

评论回复
板凳
yanxiang1|  楼主 | 2018-3-26 21:32 | 只看该作者
断点

1.png (34.36 KB )

1.png

使用特权

评论回复
地板
zhangmangui| | 2018-3-26 22:19 | 只看该作者
串行的吗     发送的时候接收端能实时接收吗  是不是错过了

使用特权

评论回复
5
yanxiang1|  楼主 | 2018-3-27 08:14 | 只看该作者
zhangmangui 发表于 2018-3-26 22:19
串行的吗     发送的时候接收端能实时接收吗  是不是错过了

但是寄存器的值没有变化呀RXBUFF没有变化 到while(!SpiaRegs.SPISTS.bit。INT_FLAG);这句话时就运行不下去了 我是吧MOSI与MISO用导线连接到一起了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

16

帖子

0

粉丝