msp430f149的同步SPI通信没反应

2019-07-15 15:32发布

以下是我写的程序:(请问哪里配置有问题吗?怎么自己收不到呀,数据应该发出去了的)

#include"msp430x14x.h"
unsigned char swp[10] = "0123456789";
void init_1602(void);
void delay(unsigned char v);
void write_com(unsigned char com);
void write_dat(unsigned char dat);
int main()
{
  int i;
  
  WDTCTL = WDTPW + WDTHOLD;
  
  P4DIR = 0xff;//液晶管脚配置
  P5DIR = BIT5 + BIT6 + BIT7;


  3SEL = BIT1 + BIT2 + BIT3;
  
  init_1602();//初始化液晶
  
  U0CTL = SWRST;
  U0CTL |= CHAR + SYNC + MM + LISTEN;//SPI主机模式,自己接收(用于测试)
  U0TCTL = CKPH + STC + SSEL0;//ACLK,3线模式
  
  U0BR0 = 0x03;//ACLK,9600
  U0BR1 = 0x00;
  U0MCTL = 0x00;//用不到,全部写0就是
  
  ME1 = UTXE0 + URXE0 + USPIE0;//允许收发
  ME1 = USPIE0;
  IFG1 &= ~UTXIFG0;
  IFG1 &= ~URXIFG0;
  IE1 = UTXIE0 + URXIE0;
  
  U0CTL &= ~SWRST;
  _EINT();
  while(1)
  {
    if (i > 1000)     i= 0;
    while(IFG1 & URXIFG0 == 0);//等待接收完成
    U0TXBUF = i;
    while(IFG1 & UTXIFG0 == 0);//等待发送完成
    IFG1 &= ~UTXIFG0;
  }
}
#pragma vector = USART0RX_VECTOR
__interrupt void SPI_RX(void)
{
  unsigned char res;
  
  while(IFG1 & UTXIFG0 == 0);//等待发送完成
  res = U0RXBUF;
  while(IFG1 & URXIFG0 == 0);//等待接收完成
  IFG1 &= ~URXIFG0;
  //得到的值放在res中,以下为处理函数,就不贴上了;  
}
是不是还要把SIMO0与SOMI0用线连上呀?可连上了也没反应呀?帮我看看看看是哪儿的问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
zhihuaczh
1楼-- · 2019-07-16 10:24
额,,,我写的是自发自收的,例程是多机通信哒,帮我看看,谢谢啦!!!
riverdj
2楼-- · 2019-07-16 13:29
 精彩回答 2  元偷偷看……
linlin64812
3楼-- · 2019-07-16 16:28
回复【9楼】艾科:
--------------------------------
-好嘛,谢谢!
sagafa
4楼-- · 2019-07-16 18:25
楼主好,我不太理解这个SPI,不知道您完成了430的这个SPI的实验了吗,能不能讲解一下啊,我也只有一块实验板

一周热门 更多>