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.

28335的SPI

你好,请问当用28335的SPI接口与外部EEPROM相连时(四线),SPISTEA引脚是配置成基本IO还是配制成SPISTEA?另外,在编程时需要人为的去控制该引脚拉高还是拉低吗?谢谢!

  • SPI接口连接EEPROM时,SPISTEA引脚配置为SPISTEA功能。不需要人为的控制该引脚的高低,发送数据时该引脚自动拉低,发送接收自动拉高。

  • 谢谢,再请教一个问题:当28335用SPI读EEPROM时,在依次发送完“读指令”和“要读的地址”后,是否要发送一个无效的数据来启动SPI的时钟然后再接收数据?我写的读EEPROM程序如下:

    // Send READ
    SpiaRegs.SPITXBUF = 0x0300; // Send READ
    while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){} // Wait until the data is sent
    SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF; // Clear SPI interrupt flag

    // Send upper address
    SpiaRegs.SPITXBUF = address; // Send upper address
    while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){} // Wait until the data is sent
    SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF; // Clear SPI interrupt flag

    // Send lower address
    SpiaRegs.SPITXBUF = address << 8; // Send lower address
    while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){} // Wait until the data is sent
    SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF; // Clear SPI interrupt flag

    // Receive data
    SpiaRegs.SPITXBUF = 0x0000; // Send 0x0000 to start SCK
    while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){} // Wait until the data is sent
    data = SpiaRegs.SPIRXBUF; // Receive data

    请问 Receive data这一段中的SpiaRegs.SPITXBUF = 0x0000和while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){} 是否需要?

  • 对了,请问你的意思是只有在有数据发送时该引脚才会自动被拉低,待数据发送结束后该引脚又会自动被拉高吗?

    SPICLK呢?是不是也是只有在有数据发送时才会有,待数据发送结束后又会自动消失?