嵌入式开发者社区
标题: SPI [打印本页]
作者: chene 时间: 2014-11-15 12:44
标题: SPI
(1)我要用SPI接外设用CS2那么我把历程里 SPI1CSPinMuxSetup(0)改为 SPI1CSPinMuxSetup(2),对不对;
(2)改完后我用示波器测SLK和CS结果是,上面CLK正确下面下面是CS,根本不对啊
(3)我一直没弄明白你这个CS是怎么拉高和拉低的是 SPIDat1Config(SOC_SPI_1_REGS, (SPI_CSHOLD | SPI_DATA_FORMAT0), 0x1);和这个么 SPIDat1Config(SOC_SPI_1_REGS, SPI_DATA_FORMAT0, 0x1);
作者: chene 时间: 2014-11-15 12:48
上面CLK是正确的,下面CS不对
作者: 希望缄默 时间: 2014-11-17 21:22
(1)对 但是具体管脚在SPI中是不是作为片选使用 还得使用 SPIPinControl 配置
(2)同上
(3)SPI 片选可以设置一个默认电平 只在传输时改变(拉低)
作者: chene 时间: 2014-11-18 09:36
能不能行针对历程讲一下,历程里我就想换个cs端怎么都换不对
作者: chene 时间: 2014-11-18 09:37
SPIPinControl应该不用改啊,我了看都配对了啊
作者: Lewis 时间: 2014-11-18 13:16
(1)使用CS2需要配置spi使用cs2作为片选,即SPI1CSPinMuxSetup(2)
(2)配置CS2空闲时的电平,如配置为空闲时高电平高电平,SPIDefaultCSSet(SOC_SPI_1_REGS, (1<<2)); //(1<<2)参数是指配置CS2
(3)修改SPIPinControl参数,CS2配置如下:
unsigned int val = 0x00000E04;
SPIPinControl(SOC_SPI_1_REGS, 0, 0, &val);
(4)修改SPIDat1Config参数,使用CS2如下:
SPIDat1Config(SOC_SPI_1_REGS, (SPI_DATA_FORMAT0), (1<<2)); //(1<<2)参数是指配置CS2 ,其中SPI_CSHOLD这个参数是指SPI的片选在下一个周期要不要保持,例如在SPIDat1Config函数中加上了SPI_CSHOLD这个参数则CS不会被拉高,也就是这一次和下一次的SPI传输CS一直保持低电平
作者: chene 时间: 2014-11-18 15:35
我这个 是在历程的基础上改,如果历程是配对的我就不会配错,我只是想换个cs端,那么我把历程里 SPI1CSPinMuxSetup(0)改为 SPI1CSPinMuxSetup(2) ,SPIPinControl应该不用改啊。怎么就只换个cs端都换不对
作者: chene 时间: 2014-11-18 16:06
已搞定,谢谢!
作者: 希望缄默 时间: 2014-11-18 21:10
有很多例程用到spi啊
作者: 希望缄默 时间: 2014-11-18 21:10
有很多例程用到spi啊
作者: 希望缄默 时间: 2014-11-18 21:10
有很多例程用到spi啊
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) |
Powered by Discuz! X3.4 |