關於MSP430F2553的IO控制

2019-03-24 09:46发布

您好

现在要把2553写成UART to SPI(slave)的一个转换程式,但却碰到了一个问题。
SPI Master端也是用 2553完成的。

状况是Slave端的2553一直没办法读到Master发送过来的SPI data,读出的值都为0x00。
经过一些测试后,发现在slave端读取的SPI master 送的CLK是有问题的。
索性就写了一段小程式来看看是哪里有问题,如下:

///////////////////////////////////////////////////////////////////////////
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;        // Stop WDT

    DCOCTL      =   CALDCO_16MHZ;
    BCSCTL1   =   CALBC1_16MHZ;     

    while(1)
    {
        P3DIR &= ~SE_CK;
        P3REN &= ~SE_CK;
        P3OUT &= ~SE_CK;
               
        P1DIR |= SE_MOSI;
        P1REN |= SE_MOSI;
        P1OUT |= SE_MOSI;

            while(1)
            {
                if(P3IN & SE_CK)
                {
                    P1OUT |=SE_MOSI;   
                }
                else
                {
                    P1OUT &=~SE_MOSI;   
                }
                DELAY_NOPS(3);
            }
    }
}
///////////////////////////////////////////////////////////////////////////

这段程式的功能是让 SE_MOSI 的状态等于 SE_CK。
当我使用手动的方式去改变SE_CK的状态,接到电源或GND。SE_MOSI皆可以正常的跟著转态。
但问题就这样发生了...
SPI master送出100KHz CLK到SE_CK ,SE_MOSI却不会产生出这个100KHz的波形。
看到的状况是维持在Low,完全不会动作!

这是为什么呢?

此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章