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条回答
cmh6
1楼-- · 2019-07-15 19:14
还有就是中断都没进去呀?
曹志静1314
2楼-- · 2019-07-15 22:11
430没玩过.
建议你先调通中断吧.
不要一次写很多代码,一步步来.
JST2006
3楼-- · 2019-07-16 02:52
 精彩回答 2  元偷偷看……
gungmng
4楼-- · 2019-07-16 05:53
程序倒是能理解,也不多,主要都是SPI的配置
龙胆紫a
5楼-- · 2019-07-16 06:04
今天晚上我要回去睡觉。
wyerwwr
6楼-- · 2019-07-16 08:21
中断函数有问题吧                                             ,在官网下个例程,直接抄上去就OK了。

一周热门 更多>