From 72cc841e66b0fbfcdc3970d00cf7102a493b94ea Mon Sep 17 00:00:00 2001 From: SEEKFREE_BUDING <2289331269@qq.com> Date: Fri, 4 Nov 2022 18:46:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96SPI=E9=80=9A=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iLLD/TC26B/Tricore/Qspi/Std/IfxQspi.h | 8 -------- .../Libraries/seekfree_libraries/zf_spi.c | 15 +++++++++------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/Seekfree_TC264_Opensource_Library/Libraries/infineon_libraries/iLLD/TC26B/Tricore/Qspi/Std/IfxQspi.h b/Seekfree_TC264_Opensource_Library/Libraries/infineon_libraries/iLLD/TC26B/Tricore/Qspi/Std/IfxQspi.h index 08d43b6..78c27a0 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/infineon_libraries/iLLD/TC26B/Tricore/Qspi/Std/IfxQspi.h +++ b/Seekfree_TC264_Opensource_Library/Libraries/infineon_libraries/iLLD/TC26B/Tricore/Qspi/Std/IfxQspi.h @@ -1239,17 +1239,9 @@ IFX_INLINE void IfxQspi_writeMixedDataTransmitFifo(Ifx_QSPI *qspi, uint32 mixEnt qspi->MIXENTRY.U = mixEntryVal; } -extern uint8 spi_mosi_data_not; IFX_INLINE void IfxQspi_writeTransmitFifo(Ifx_QSPI *qspi, uint32 data) { - if(spi_mosi_data_not) - { - qspi->DATAENTRY[0].U = ~data; - } - else - { qspi->DATAENTRY[0].U = data; - } } diff --git a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_spi.c b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_spi.c index 62ec39c..2bbafc6 100644 --- a/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_spi.c +++ b/Seekfree_TC264_Opensource_Library/Libraries/seekfree_libraries/zf_spi.c @@ -28,7 +28,7 @@ #define MAX_BAUD 50000000 -uint8 spi_mosi_data_not; +uint8 spi_not[4] = {0}; void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_PIN_enum miso_pin, SPI_PIN_enum cs_pin, IfxQspi_SpiMaster_Pins *set_pin, IfxQspi_SpiMaster_Output *set_cs) { @@ -313,9 +313,9 @@ void spi_init(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_ MasterChConfig.sls.output = SlsoPin; IfxQspi_SpiMaster_initChannel(&MasterChHandle, &MasterChConfig); - if(mosi_pin == SPI2_MOSI_P13_2 || mosi_pin == SPI3_MOSI_P22_2) + if((mosi_pin == SPI2_MOSI_P13_2 && spi_n == SPI_2) || (mosi_pin == SPI3_MOSI_P22_2 && spi_n == SPI_2)) { - spi_mosi_data_not = 1; + spi_not[spi_n] = 1; } } @@ -373,8 +373,8 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata len -= 1; while(i < len) { - - IfxQspi_writeTransmitFifo(moudle, *modata++); + if(spi_not[spi_n]) IfxQspi_writeTransmitFifo(moudle, ~(*modata++)); + else IfxQspi_writeTransmitFifo(moudle, (*modata++)); if(midata) { while(moudle->STATUS.B.RXFIFOLEVEL == 0); @@ -388,7 +388,10 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata //发送最后一个数据 if(continuous) IfxQspi_writeBasicConfigurationEndStream(moudle, bacon.U); - IfxQspi_writeTransmitFifo(moudle, *modata); + + if(spi_not[spi_n]) IfxQspi_writeTransmitFifo(moudle, ~(*modata)); + else IfxQspi_writeTransmitFifo(moudle, *modata); + while(moudle->STATUS.B.TXFIFOLEVEL != 0); if(midata)