嵌入式开发者社区

标题: SPI读写flash的问题 [打印本页]

作者: xiaoo125    时间: 2016-11-30 20:42
标题: SPI读写flash的问题
有一些问题不太明白,需要请教下
void SPIInit(void)
{
    unsigned char cs  = 0x01;
    unsigned char dcs = 0x01;
    unsigned int  val = SIMO_SOMI_CLK_CS;

    SPIReset(SOC_SPI_1_REGS);

    SPIOutOfReset(SOC_SPI_1_REGS);

    SPIModeConfigure(SOC_SPI_1_REGS, SPI_MASTER_MODE);

    SPIClkConfigure(SOC_SPI_1_REGS, 228000000, 20000000, SPI_DATA_FORMAT0);

    SPIPinControl(SOC_SPI_1_REGS, 0, 0, &val);

    SPIDefaultCSSet(SOC_SPI_1_REGS, dcs);

    // 配置 SPI 数据格式
    SPIDataFormatConfig(SPI_DATA_FORMAT0);

    // 配置 SPI 数据格式及片选信号
    SPIDat1Config(SOC_SPI_1_REGS, (SPI_CSHOLD | SPI_DATA_FORMAT0), cs);

其中的cs片选和之前初始化SPI口的SPI1CSPinMuxSetup(0);
1.这两个片选有什么区别?
2.这个SPIDat1Config(SOC_SPI_1_REGS, (SPI_CSHOLD | SPI_DATA_FORMAT0), cs);函数中的片选从0开始还是从1开始,如果要选择其他片选信号,这里还需要修改吗?

作者: xiaoo125    时间: 2016-11-30 21:49
还有我怎么修改函数SPI1CSPinMuxSetup(0); 参数我无论修改成几,程序运行到这里的时候我看到的SPIPC0寄存器里都是SCS0FUN0复用为SPI(SCS0 function),也就是片选0被选择
作者: 希望缄默    时间: 2016-12-2 08:34
xiaoo125 发表于 2016-11-30 21:49
还有我怎么修改函数SPI1CSPinMuxSetup(0); 参数我无论修改成几,程序运行到这里的时候我看到的SPIPC0寄存器 ...

这是两码事
SPI1CSPinMuxSetup(0);  配置的是 SYSCONFIG 寄存器管脚复用跟 SPI 外设没有关系





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4