mirror of
https://gitee.com/seekfree/TC264_Library.git
synced 2026-06-04 03:32:56 +00:00
优化SPI通信
This commit is contained in:
@@ -1239,18 +1239,10 @@ 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
IFX_INLINE boolean IfxQspi_isModuleSuspended(Ifx_QSPI *qspi)
|
||||
|
||||
@@ -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
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user