TI中文支持网
TI专业的中文技术问题搜集分享网站

CC430与ADXL345通过spi无法正常通讯。请指教,谢谢!

我的SPI代码是和例程那样配置的,CC430的 USCIB0 4线SPI 配置代码如下:

char UCB0_MasterSPI_init (void)
{
 char comres = 0;

   // Enable SW reset
   UCB0CTL1 = UCSWRST;
   
    // 4-pin, 8-bit SPI master Clock polarity high, MSB
   UCB0CTL0 |=UCMST+UCSYNC+UCCKPL+UCMSB+UCMODE0+UCCKPH; //add by jh.du 2014.05.22 spi configuration
   
    // Select SMCLK Clock and hold SW reset
   UCB0CTL1 = USCI_B0_CLK;
   
   // set prescaler
   UCB0BRW = USCI_B0_BAUD;
   

   // Clear SW reset, resume operation
   UCB0CTL1 &= ~UCSWRST;
   
     UCB0IE |= UCRXIE   
   return(comres);
}

读写的程序如下:

void SPI_Write(unsigned char spi_data)
{

 while (!(UCB0IFG&UCTXIFG));           // USCI_B0 TX buffer ready?
 UCB0TXBUF =spi_data;                 // Send first value
 // __delay_cycles(40);
}

unsigned char ADXL_Read(unsigned char reg)                                    //ADXL345读取数据
{
  while (!(UCB0IFG&UCTXIFG));           // USCI_A0 TX buffer ready?
  UCB0TXBUF =reg;                 // Send next value
    return UCB0RXBUF;
}

程序能够进入接收中断,代表收发完成,但是读取的数据总是0,读取ADXL345的ID也是0,这是不正常的正确应该是0Xe5

请指教,谢谢!

kqian0327:

你好,

这个版块是负责MSP430的技术咨询,如果有关于CC430方面的技术问题,请把帖子放到无线部门。

从你的问题来看 ,我建议你检查两个问题:

1.spi时钟设置的多少,是不是太快?

2.spi主从模式是不是设置的一致。

赞(0)
未经允许不得转载:TI中文支持网 » CC430与ADXL345通过spi无法正常通讯。请指教,谢谢!
分享到: 更多 (0)