橘子洲头 发表于 2021-8-5 15:56:16

【SPI】FM33LC023N的SPI片选CS问题!!

芯片的SPI1的CS是PB8,这里SPI用软件SPI的话,为啥不能把PB8弄出推挽输出,然后拉低 发送数据 拉高停止传输呢!
按如下的设置根本CS就不行,芯片不工作,那这样的软件片选CS还有什么用呢,想换成其他IO也肯定是不行了呗!望解答!!

GPIO_InitStruct.pin = FL_GPIO_PIN_8;   //SPI1_SSN
    GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
    GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
    GPIO_InitStruct.pull = FL_DISABLE;
    GPIO_InitStruct.remapPin = FL_DISABLE;
               FL_GPIO_Init( GPIOB, &GPIO_InitStruct );

    defaultInitStruct.transferMode = FL_SPI_TRANSFER_MODE_FULL_DUPLEX;
    defaultInitStruct.mode = FL_SPI_WORK_MODE_MASTER;
    defaultInitStruct.dataWidth = FL_SPI_DATA_WIDTH_8B;
    defaultInitStruct.clockPolarity = FL_SPI_POLARITY_INVERT;
    defaultInitStruct.clockPhase = FL_SPI_PHASE_EDGE2;
    defaultInitStruct.softControl = FL_ENABLE;
    defaultInitStruct.baudRate = FL_SPI_BAUDRATE_DIV4;
    defaultInitStruct.bitOrder = FL_SPI_BIT_ORDER_MSB_FIRST;


//FL_SPI_SetSSNPin(SPI1, FL_SPI_SSN_LOW); //
FL_GPIO_ResetOutputPin(GPIOB , FL_GPIO_PIN_8);

      
    FL_SPI_WriteTXBuff(SPI1, adder);

    while(!(FL_SPI_IsActiveFlag_TXBuffEmpty(SPI1)));
    while(!(FL_SPI_IsActiveFlag_RXBuffFull(SPI1)));
    adder = FL_SPI_ReadRXBuff(SPI1);      
      
    FL_SPI_WriteTXBuff(SPI1, data);
    while(!(FL_SPI_IsActiveFlag_TXBuffEmpty(SPI1)));
    while(!(FL_SPI_IsActiveFlag_RXBuffFull(SPI1)));
    data = FL_SPI_ReadRXBuff(SPI1);
FL_GPIO_SetOutputPin(GPIOB , FL_GPIO_PIN_8);
//    FL_SPI_SetSSNPin(SPI1, FL_SPI_SSN_HIGH);


这样设置就发送不了数据

顾博文 发表于 2021-8-6 10:32:27

本帖最后由 顾博文 于 2021-8-6 12:28 编辑

首先理解下,硬件,软件,与引脚。
   你说的软件其实是通过自己输出引脚电平控制。芯片手册上的软件控制是通过SPI CR2寄存器的一个bit SSN,控制高低电平。这不是一个概念。
   如果你想要通过自己输出引脚电平来控制,那么引脚配置成推挽输出。置高,置低。这个跟spi没任何关系。自己用示波器看下输出引脚是不是输出正确就行了。

橘子洲头 发表于 2021-8-6 11:13:54

那如果我想用其他IO充当软件CS,推挽输出高低来控制SPI进行通信,这样理论上可行吗

顾博文 发表于 2021-8-6 16:02:27

橘子洲头 发表于 2021-8-6 11:13
那如果我想用其他IO充当软件CS,推挽输出高低来控制SPI进行通信,这样理论上可行吗 ...

可以。很多用户就是这么做的。 引脚设置成推挽输出就可以了,实现spi的分时多路复用。spi调试時,用示波器看波形,延时看清情况加

sapple 发表于 2021-8-21 15:29:41

你的defaultInitStruct设置了一堆信息,但是没有Init进去呀,没有起作用,SPI都没打开呢,当然没有数据出去了;P
页: [1]
查看完整版本: 【SPI】FM33LC023N的SPI片选CS问题!!