Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

msp430f47187的SPI通信SIMO口时序和MSP430F149对比

$
0
0

/********************初始化SPI********************/
void Init_SPI0(void)
{
P3SEL = 0x0E; //setup P3 for SPI mode
P3DIR |= BIT0; 
UCB0CTL0 = 0x49; //Polarity,Master,8-bit, 3-Pin SPI 01001001
UCB0CTL1 = UCSSEL1 + UCSWRST; //SMCLK
UCB0BR0 = 0x82; //setup baud rate,9600
UCB0BR1 = 0x06;
UCA0CTL1 &= ~UCSWRST; //SPI EnablE

}

//******************************************************************************
// SPI_Send_OneByte,发送单个字节数据 
//******************************************************************************
void SPI_Send_OneByte(uchar Send_Data)
{
P3OUT &= ~BIT0; //STE = 0
UCB0TXBUF = Send_Data; //发送一个字节
while((IFG2 & UCB0TXIFG)==0); //等待发送完成,检测UCB0TXIFG位
P3OUT |= BIT0; //STE = 1
}

//******************************************************************************
// SPI_Receive_OneByte,SPI接收单个字节
//****************************************************************************** 
uchar SPI_Receive_OneByte(void) 
{
uchar ReceiveByte;
P3OUT &= ~BIT0;
UCB0TXBUF = 0xFF; //发送一个字节
while((IFG2 & UCB0RXIFG) == 0);
ReceiveByte = UCB0RXBUF;
P3OUT |= BIT0;
return ReceiveByte;
}

msp430f47187芯片的SIMO口的时序图如下图所示,完成一个字节的传输后不会将SIMO口上拉,并直接传送下一个字节

但是MSP430F149芯片在相同的配置下SIMO口的数据传送:每发送一个字节数据就自动将SIMO口置1并延时,如下图所示

我用149芯片发送数据后SOMI口能接收到正确的数据,但是用47187就是不行。

这两个芯片内部的架构是不是不一样?接收到的数据不正确和这两个发送波形不完全吻合有关系吗?


Viewing all articles
Browse latest Browse all 3634

Trending Articles