以下是我写的程序:(请问哪里配置有问题吗?怎么自己收不到呀,数据应该发出去了的)
#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用线连上呀?可连上了也没反应呀?帮我看看看看是哪儿的问题? |