hello
我现在用MSP430F2274在做一块板子,现在要用到2274的USCI_B0口做SPI功能,我的初始化设置如下
void InitSpi(void)
{
UCB0CTL1 = 0x01; //set ucswrst = 1
UCB0CTL1 |= UCSSEL_2; ///select smclk
UCB0CTL0 |= UCMSB + UCMST + UCSYNC; // 3-pin, 8-bit SPI mstr, MSB 1st sync mode
UCB0BR0 = 0x02; //baud
UCB0BR1 = 0;
P3SEL |= (BIT3|BIT2|BIT1);//// // P3.3,2,1,0 USCI_B0 option select // p3.0 is output
P3DIR |= 0x01; // P3.0 output direction
UCB0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= UCB0RXIE;
}
发送函数为
void SpiB0_TXISR( unsigned char* Spi_TX_data, char send_len)
{
SpiSendData = Spi_TX_data;
SpiSendLen = send_len;
UCB0TXBUF = SpiSendData ;//发送数据
while (!(IFG2 & UCB0TXIFG)); //(IFG2 & UCB0TXIFG ) 为 0 时,表示数据为满,不能接收新数据发送,要等待
if(SpiTxindex < SpiSendLen) //表示发送多少个数据,发送计数器
{
UCB0TXBUF = *(SpiSendData+SpiTxindex); // 数据发送
SpiTxindex++;
//delay(100);
}
else
{
SpiTxindex=0;
}
}
系统时钟选择的是1MHZ,为什么我的SPI没有输出数据了,
在用断点跟踪时,CLOCK只可以出一组时钟(8 个脉冲),没有数据,用示波器测量波形没有波形出来,
但程序跑起来时,时钟也是只出一次,没有数据,
请问我的配置哪里错了呢,为什么没有数据了,时钟也不是一直有波形出来,