This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

使用SPI通信,切换管脚的问题



使用G2553,问题现象:

1,使用P1.6和P1.7是正常的;

2,换成P1.1和P1.2会一直卡在while(!(IFG2 & UCA0TXIFG))上。

改动时除了换管脚,程序中相应的将UCB0换成了UCA0,还有什么需要注意的地方?

void init_UCA0(void)
{
UCA0CTL1 |= UCSWRST;
UCA0CTL0 = UCCKPH + UCMSB + UCMST + UCMODE_1 + UCSYNC;
UCA0CTL1 = UCSSEL_2 + UCSWRST;
UCA0BR0 = 32;
UCA0CTL1 &= ~UCSWRST;
}

  • USCI B0和USCI A0并不只是名称的不一样,在硬件结构上也是不一样的。

    不能简单的修改B为A的。。。

    具体请参考datasheet和官网提供的例程

  • 感谢回复!

    1.7是留给I2C用的,查的例程是用1.7,想改成1.2,真费劲了……

    在调试的过程中,发现如果是B的话,在UCB0TXBUF写入后,UCB0TXIFG会为1,改成UCA0TXBUF后,UCA0TXIFG会一直为0,这个是什么原因?

  • 问题解决了,经我新手使用,感觉A和B在配置上是类似的,这次出现问题的原因是:

    对片不了解、不了解、不了解……

    使用B的时候,用1.5做UCB0CLK,是可以的,但是在使用A的时候,再用这个就不可以了,应该使用UCA0CLK,就是1.4。