已回答假定已回答

ADUcM360 SPI接口调试,SPITX一直为0

GJADI 在 2016-6-21 詢問的問題
最後回覆由barryzhang於2016-6-24提供

在KEIL下调试ADuCM360的SPI接口,自检测试。为什么SPITX寄存器里写不进去任何东西啊??代码如下:

#include <stdio.h>

#include <string.h>

#include <ADuCM360.h>

 

#include <..\common\AdcLib.h>

#include <..\common\IexcLib.h>

#include <..\common\UrtLib.h>

#include <..\common\ClkLib.h>

#include <..\common\WdtLib.h>

#include <..\common\IntLib.h>

#include <..\common\DioLib.h>

#include <..\common\SpiLib.h>

void SPI1INIT(void);

unsigned char uxSPI1WrData[]={0x1,0x2,0x3,0x4,0x5,0x6,0x7,

           0x8,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18};

unsigned char uxSPI1RdData[]="";

int main (void)

{

   WdtCfg(T3CON_PRE_DIV1,T3CON_IRQ_EN,T3CON_PD_DIS);

ClkDis(CLKDIS_DISI2CCLK|CLKDIS_DISPWMCLK|CLKDIS_DIST0CLK|CLKDIS_DIST1CLK|CLKDIS_DISDACCLK);

ClkCfg(CLK_CD0,CLK_HF,CLKSYSDIV_DIV2EN_DIS,CLK_UCLKCG);

   ClkSel(CLK_CD0,CLK_CD0,CLK_CD0,CLK_CD7);

   SPI1INIT();

SpiCfg(pADI_SPI1,SPICON_MOD_TX1RX1,SPICON_MASEN_EN ,SPI1CON_TFLUSH_DIS| SPI1CON_RFLUSH_EN| SPI1CON_CON_EN| SPI1CON_LOOPBACK_EN| SPI1CON_SOEN_DIS| SPI1CON_RXOF_EN

     | SPI1CON_ZEN_DIS| SPI1CON_TIM_TXWR| SPI1CON_LSB_DIS| SPI1CON_WOM_DIS| SPI1CON_CPOL_HIGH| SPI1CON_CPHA_SAMPLETRAILING| SPI1CON_ENABLE_EN);

pADI_GP0->GPCLR = GP0CLR_CLR3_CLR;

while (1)

   {

int i=0;

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

{pADI_SPI1->SPITX= uxSPI1WrData[i];

pADI_SPI1->SPIRX=pADI_SPI1->SPITX;

uxSPI1RdData[i]=pADI_SPI1->SPIRX;

   }

}

}

void SPI1INIT(void)

{                   

   DioCfgPin(pADI_GP0, PIN0, 1);                               

   DioCfgPin(pADI_GP0, PIN1, 1);

   DioCfgPin(pADI_GP0, PIN2, 1);

   DioCfgPin(pADI_GP0, PIN3, 1);

SpiBaud(pADI_SPI1,0x3F,SPIDIV_BCRST_DIS);

}

 

我认为即使SPI不配置,SPITX寄存器也能写进去东西啊,只是不能传输而已。现在SPITX里面的数一直是0。望朋友们解答!

結果