各位大虾,这是我一个MSP430G2433 的SPI(B0)口编的一个初始话程序,大家看看有什么问题没有,老是发送不对。
#define SYNC UCB0CTL0__SPI_bit.UCSYNC
#define MODE0 UCB0CTL0__SPI_bit.UCMODE0
#define MODE1 UCB0CTL0__SPI_bit.UCMODE1
#define MST UCB0CTL0__SPI_bit.UCMST
#define BIT UCB0CTL0__SPI_bit.UC7BIT
#define MSB UCB0CTL0__SPI_bit.UCMSB
#define KPL UCB0CTL0__SPI_bit.UCCKPL
#define KPH UCB0CTL0__SPI_bit.UCCKPH
#define SWRST UCB0CTL1__SPI_bit.UCSWRST
#define SSEL0 UCB0CTL1__SPI_bit.UCSSEL0
#define SSEL1 UCB0CTL1__SPI_bit.UCSSEL1
#define BUSY UCB0STAT__SPI_bit.UCBUSY
#define OE UCB0STAT__SPI_bit.UCOE
#define FE UCB0STAT__SPI_bit.UCFE
#define LISTEN UCB0STAT__SPI_bit.UCLISTEN
#define SPIREN IE2_bit.UCB0RXIE
#define SPITEN IE2_bit.UCB0TXIE
#define SPIR IFG2_bit.UCB0RXIFG
#define SPIT IFG2_bit.UCB0TXIFG
#define TXBUF UCB0TXBUF__SPI
#define RXBUF UCB0RXBUF__SPI
void spi()
{
SWRST=1; //关spi
SYNC=1; //选择spi
MST=1; //spi主机模式
BIT=0; //8位数据模式
MSB=0; //低位在前
KPL=0;
KPH=0; //选择时钟与数据关系
MODE0=0;
MODE1=0; //3线spi
SSEL0=1;
SSEL1=0; //选择ACLK时钟
UCB0BR0__SPI=200;
UCB0BR1__SPI=200; //时钟8分频
SWRST=0; //开spi
}
Viki Shi:
有没有用官网提供的参考代码跑过?最好先试试参考代码是否正确,排除硬件问题:http://www.ti.com/cn/lit/zip/slac485
kqian0327:
你好,
现象是什么?
没有输出?
还是slave端没有反应?
波形截图出来吧