MSP 2132 的SPI编程问题

2019-03-24 12:14发布

小妹才开始学习MSP430,现在用的是MSP430f2132。。写了一个通过SPI让MSP430与ADC之间的通信程序。

现在就想简单地测试一下MSP与ADC之间能否正常通信,所以就很简单地向从ADC中读取一个8-bit数据,程序其中一段如下:

//测试MSP是否可以从ADC中读取数据
  SET_CLOCK();
  SPI_init();
  START_SPI();


while(1)
{   
    while(!(IFG2&UCA0TXIFG));     
    UCA0TXBUF = READ_STATUS;        //READ_STATUS 0x40是写入ADC通信寄存器中的数,表示读取状态寄存器


    RX_value = UCA0RXBUF;     //读取状态寄存器内容
    for(i = 0xFFFF; i > 0; i--);

    _NOP();
}
   STOP_SPI();


可是我用FET调试的时候,发现UCA0TXBUF = READ_STATUS = 0x40;  但是,UCA0RXBUF 是0x00啊、、应该从ADC中读取它的状态寄存器值0x80啊。
是我的程序有问题么?还是其他的问题。在线等各位大神给小妹点指导!!!!!

不胜感激!!!!!!!! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
lcofjp
1楼-- · 2019-03-24 18:14
小妹您好:
UCA0TXBUF = READ_STATUS;        //READ_STATUS 0x40是写入ADC通信寄存器中的数,表示读取状态寄存器
//这两个语句中间是要进行等待直到接收到数据后再去读取缓冲区。应该有接收到数据或者忙的标志位。
RX_value = UCA0RXBUF;     //读取状态寄存器内容
杨咩咩
2楼-- · 2019-03-24 22:31
< :TI_MSP430_内容页_SA7 --> 那就是两句中间加一个判断么???我来试试。谢谢楼上大哥!
杨咩咩
3楼-- · 2019-03-24 23:30
 精彩回答 2  元偷偷看……
lcofjp
4楼-- · 2019-03-25 00:07
中间加一个
while(UCA0STAT & 0x01);
试试
杨咩咩
5楼-- · 2019-03-25 02:10
还是0x00啊。。。郁闷死我了!!!!

还有神马方法么?下周一拿到示波器看看?
lcofjp
6楼-- · 2019-03-25 03:36
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章