工具/软件:Code Composer Studio
您好!
我在 UCB0RXBUF 中只接收来自 AD7689 ADC 的0x00数据、我不知道为什么。 我想从压力传感器获取数据。
我的代码是:
#include
char spiReadByte (void);
/*
* main.c
*
int main (void){
int i;
//停止看门狗计时器以防止超时复位
WDTCTL = WDTPW + WDTHOLD;
P1DIR=BIT0;//使引脚0输出
P1OUT=BIT0;//将引脚0变为高电平
P2DIR=BIT0+BIT1;
P2OUT=0;
P3OUT = 0x40;//设置从器件复位
P3DIR |= 0x40;//
P3SEL |= 0x0E;// P3.0、1、2、3 USCI_B0选项选择
UCB0CTL0 |= UCCKPL | UCMSB | UCMST | UCSYNC;// 3引脚、8位 SPI 主器件
UCB0CTL1 |= UCSSEL_2;// SMCLK
UCB0BR0 |= 0x02;///2
UCB0BR1 = 0;//
UCA0MCTL = 0;//无调制
UCB0CTL1 &=~UCSWRST;//**初始化 USCI 状态机**
IE2 |= UCB0RXIE;//启用 USCI0 RX 中断
P3OUT &=~0x40;//现在 SPI 信号已初始化、
P3OUT |= 0x40;//复位从器件
对于(I = 50;I > 0;I-);//等待从器件初始化-
for (i=2;i>0;i--)//DIN-t 2 beszelgetesig high-BA
{spiReadByte();}
// while (!(IFG2 & UCB0TXIFG);
//UCB0TXBUF =/*config adc hexaba*/;//发送第一个字符
//printf ("%d\n"、spiReadByte ());
while (1)
{spiReadByte();}
}
char spiReadByte (空)
{
字符 adat;
//等待 TX
while (!(IFG2 & UCB0TXIFG));//这仅告知您 TX 缓冲区为空。
UCB0TXBUF = 0xAA;
while (!(IFG2 & UCB0RXIFG));
ADAT = UCB0RXBUF;
退货地址;
}