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

MSP430F249在串口0的SPI模式下读ADS1293的数据问题

主要想问一下我下面的读程序是否有问题,现在我读出来的数据始终是0x00。谢谢了

//*************************************************************************
// SPI串口0初始化
//*************************************************************************
void SPI_Init()
{
P5SEL |= 0x0E; //设置USART0相关IO口功能,CS片选设置为普通IO,3线SPI设置为第二功能
//P5SEL &= ~0x11;
P5OUT |= 0x01; //初始化时设置CS为高
P5DIR |= 0x0B; //对于输入输出方向,第二功能也需要配置
UCA0CTL1 |= UCSWRST;
UCA0CTL0 |= UCCKPH + UCMSB + UCMST + UCSYNC; // 3-pin, 8-bit SPI master
UCA0CTL1 |= UCSSEL1;//+UCSSEL0; // SMCLK UCA0BR1=baud1_h; //BRCLK=8MHZ,Baud=BRCLK/N
UCA0BR0=baud1_l; //N=UBR+(UxMCTL)/8
UCA0MCTL=0x00; //微调寄存器为0,波特率9600bps
UCA0CTL1 &= ~UCSWRST; // 配置完后清零SWRST,必须这样的过程,否则可能出现不可预料错误
IE2 |= UCA0RXIE;
IE2 |= UCA0TXIE;
}

/****************往ADS1293写入命令SDI******************/

void ADS_Write(char address,char data)
{
P5OUT &=0xFE;
while(!(IFG2&UCA0TXIE));
UCA0TXBUF = address;
while(!(IFG2&UCA0TXIE));
UCA0TXBUF = data;
P5OUT |=0x01;
}

/*************从ADS1293读出一个字节数据****************/
uchar ADS_read(uchar address)
{ uchar ADS_DAT=1;
P5OUT &=0xFE;
while(!(IFG2&UCA0TXIE));
UCA0TXBUF = 0x80 | address;
ADS_DAT = UCA0RXBUF;
P5OUT |=0x01;
return ADS_DAT;
}

kqian0327:

你好,

程序上看来是没有问题,可以把你的波形节选出来,我想看看示波器波形。

另外请你注意一个问题,UCA0CTL0 |= UCCKPH + ….

你设置的SPI工作模式是否和ADS1293对应?

我觉得是这个问题的可能性很大。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F249在串口0的SPI模式下读ADS1293的数据问题
分享到: 更多 (0)