mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
544 lines
24 KiB
C
544 lines
24 KiB
C
/******************************************************************************************************************************************
|
||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>: SWM320_spi.c
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: SWM320<32><30>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>SPI<50><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* <20><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>: http://www.synwit.com.cn/e/tool/gbook/?bid=1
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||
* <20>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD>: V1.1.0 2017<31><37>10<31><30>25<32><35>
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼:
|
||
*
|
||
*
|
||
*******************************************************************************************************************************************
|
||
* @attention
|
||
*
|
||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
|
||
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
|
||
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
|
||
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
|
||
* -ECTION WITH THEIR PRODUCTS.
|
||
*
|
||
* COPYRIGHT 2012 Synwit Technology
|
||
*******************************************************************************************************************************************/
|
||
#include "SWM320.h"
|
||
#include "SWM320_spi.h"
|
||
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_Init()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: SPIͬ<49><CDAC><EFBFBD><EFBFBD><EFBFBD>нӿڳ<D3BF>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>趨<EFBFBD><E8B6A8>ʱ<EFBFBD><CAB1><EFBFBD>趨<EFBFBD><E8B6A8><EFBFBD>ٶ<EFBFBD><D9B6>趨<EFBFBD><E8B6A8><EFBFBD>ж<EFBFBD><D0B6>趨<EFBFBD><E8B6A8>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>趨
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* SPI_InitStructure * initStruct <09><><EFBFBD><EFBFBD>SPI<50><49><EFBFBD><EFBFBD><EFBFBD>趨ֵ<E8B6A8>Ľṹ<C4BD><E1B9B9>
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_Init(SPI_TypeDef * SPIx, SPI_InitStructure * initStruct)
|
||
{
|
||
switch((uint32_t)SPIx)
|
||
{
|
||
case ((uint32_t)SPI0):
|
||
SYS->CLKEN |= (0x01 << SYS_CLKEN_SPI0_Pos);
|
||
break;
|
||
|
||
case ((uint32_t)SPI1):
|
||
SYS->CLKEN |= (0x01 << SYS_CLKEN_SPI0_Pos); //<2F><>SPI0ʹ<30><CAB9>ͬһλʱ<CEBB><CAB1>ʹ<EFBFBD><CAB9>
|
||
break;
|
||
}
|
||
|
||
SPI_Close(SPIx); //һЩ<D2BB>ؼ<EFBFBD><D8BC>Ĵ<EFBFBD><C4B4><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>SPI<50>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||
|
||
SPIx->CTRL &= ~(SPI_CTRL_FFS_Msk | SPI_CTRL_CPHA_Msk | SPI_CTRL_CPOL_Msk |
|
||
SPI_CTRL_SIZE_Msk | SPI_CTRL_MSTR_Msk | SPI_CTRL_CLKDIV_Msk | SPI_CTRL_SSN_H_Msk);
|
||
SPIx->CTRL |= (initStruct->FrameFormat << SPI_CTRL_FFS_Pos) |
|
||
(initStruct->SampleEdge << SPI_CTRL_CPHA_Pos) |
|
||
(initStruct->IdleLevel << SPI_CTRL_CPOL_Pos) |
|
||
((initStruct->WordSize-1) << SPI_CTRL_SIZE_Pos) |
|
||
(initStruct->Master << SPI_CTRL_MSTR_Pos) |
|
||
(initStruct->clkDiv << SPI_CTRL_CLKDIV_Pos) |
|
||
(0 << SPI_CTRL_SSN_H_Pos);
|
||
|
||
SPIx->IF = (0x01 << SPI_IF_RFOVF_Pos); //<2F><><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־
|
||
SPIx->IE &= ~(SPI_IE_RFHF_Msk | SPI_IE_TFHF_Msk | SPI_IE_FTC_Msk);
|
||
SPIx->IE |= (initStruct->RXHFullIEn << SPI_IE_RFHF_Pos) |
|
||
(initStruct->TXEmptyIEn << SPI_IE_TFHF_Pos) |
|
||
(initStruct->TXCompleteIEn << SPI_IE_FTC_Pos);
|
||
|
||
switch((uint32_t)SPIx)
|
||
{
|
||
case ((uint32_t)SPI0):
|
||
if(initStruct->RXHFullIEn | initStruct->TXEmptyIEn | initStruct->TXCompleteIEn)
|
||
{
|
||
NVIC_EnableIRQ(SPI0_IRQn);
|
||
}
|
||
else
|
||
{
|
||
NVIC_DisableIRQ(SPI0_IRQn);
|
||
}
|
||
break;
|
||
|
||
case ((uint32_t)SPI1):
|
||
if(initStruct->RXHFullIEn | initStruct->TXEmptyIEn | initStruct->TXCompleteIEn)
|
||
{
|
||
NVIC_EnableIRQ(SPI1_IRQn);
|
||
}
|
||
else
|
||
{
|
||
NVIC_DisableIRQ(SPI1_IRQn);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_Open()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: SPI<50><EFBFBD><F2BFAAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_Open(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->CTRL |= (0x01 << SPI_CTRL_EN_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_Close()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: SPI<50>رգ<D8B1><D5A3><EFBFBD>ֹ<EFBFBD>շ<EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_Close(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->CTRL &= ~SPI_CTRL_EN_Msk;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_Read()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t <09><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_Read(SPI_TypeDef * SPIx)
|
||
{
|
||
return SPIx->DATA;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_Write()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: д<><D0B4>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* uint32_t Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_Write(SPI_TypeDef * SPIx, uint32_t data)
|
||
{
|
||
SPIx->DATA = data;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_WriteWithWait()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: д<><D0B4>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>ͳ<EFBFBD>ȥ
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1<49><31>SPI1
|
||
* uint32_t Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_WriteWithWait(SPI_TypeDef * SPIx, uint32_t data)
|
||
{
|
||
SPIx->STAT |= (1 << SPI_STAT_WTC_Pos);
|
||
|
||
SPIx->DATA = data;
|
||
|
||
while((SPIx->STAT & SPI_STAT_WTC_Msk) == 0);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_ReadWrite()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><CDB9><EFBFBD><EFBFBD>н<EFBFBD><D0BD>յ<EFBFBD><D5B5><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* uint32_t data Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: uint32_t <09><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB>SPIģ<49>飬<EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>SPI_Write()<29><><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ΪSPI_Write()<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SPI_STAT_RFNE״̬
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_ReadWrite(SPI_TypeDef * SPIx, uint32_t data)
|
||
{
|
||
SPIx->DATA = data;
|
||
while(!(SPIx->STAT & SPI_STAT_RFNE_Msk));
|
||
|
||
return SPIx->DATA;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_IsRXEmpty()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46>Ƿ<EFBFBD><C7B7>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>SPI_Read()
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46><4F> 0 <20><><EFBFBD><EFBFBD>FIFO<46>ǿ<EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_IsRXEmpty(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->STAT & SPI_STAT_RFNE_Msk) ? 0 : 1;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_IsTXFull()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>SPI_Write()
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46><4F> 0 <20><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_IsTXFull(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->STAT & SPI_STAT_TFNF_Msk) ? 0 : 1;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_IsTXEmpty()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46>Ƿ<EFBFBD><C7B7><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46><4F> 0 <20><><EFBFBD><EFBFBD>FIFO<46>ǿ<EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_IsTXEmpty(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->STAT & SPI_STAT_TFE_Msk) ? 1 : 0;
|
||
}
|
||
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXHalfFullEn()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXHalfFullEn(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE |= (0x01 << SPI_IE_RFHF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXHalfFullDis()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6>ֹ
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXHalfFullDis(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE &= ~(0x01 << SPI_IE_RFHF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXHalfFullClr()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXHalfFullClr(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IF = (1 << SPI_IF_RFHF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXHalfFullStat()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>״̬
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46>ﵽ<EFBFBD><EFB5BD><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD>FIFOδ<4F>ﵽ<EFBFBD><EFB5BD><EFBFBD><EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_INTRXHalfFullStat(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->IF & SPI_IF_RFHF_Msk) ? 1 : 0;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXFullEn()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXFullEn(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE |= (0x01 << SPI_IE_RFF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXFullDis()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>жϽ<D0B6>ֹ
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXFullDis(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE &= ~(0x01 << SPI_IE_RFF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXFullClr()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXFullClr(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IF = (1 << SPI_IF_RFF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXFullStat()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ж<EFBFBD>״̬
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46><4F> 0 <20><><EFBFBD><EFBFBD>FIFOδ<4F><CEB4>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_INTRXFullStat(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->IF & SPI_IF_RFF_Msk) ? 1 : 0;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXOverflowEn()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXOverflowEn(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE |= (0x01 << SPI_IE_RFOVF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXOverflowDis()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6>ֹ
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXOverflowDis(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE &= ~(0x01 << SPI_IE_RFOVF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXOverflowClr()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTRXOverflowClr(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IF = (0x01 << SPI_IF_RFOVF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTRXOverflowStat()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>״̬
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD>FIFOδ<4F><CEB4><EFBFBD><EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_INTRXOverflowStat(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->IF & SPI_IF_RFOVF_Msk) ? 1 : 0;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXHalfFullEn()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXHalfFullEn(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE |= (0x01 << SPI_IE_TFHF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXHalfFullDis()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6>ֹ
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXHalfFullDis(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE &= ~(0x01 << SPI_IE_TFHF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXHalfFullClr()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXHalfFullClr(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IF = (1 << SPI_IF_TFHF_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXHalfFullStat()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>״̬
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46>ﵽ<EFBFBD><EFB5BD><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD>FIFOδ<4F>ﵽ<EFBFBD><EFB5BD><EFBFBD><EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_INTTXHalfFullStat(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->IF & SPI_IF_TFHF_Msk) ? 1 : 0;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXEmptyEn()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXEmptyEn(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE |= (0x01 << SPI_IE_TFE_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXEmptyDis()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>жϽ<D0B6>ֹ
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXEmptyDis(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE &= ~(0x01 << SPI_IE_TFE_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXEmptyClr()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXEmptyClr(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IF = (1 << SPI_IF_TFE_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXEmptyStat()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ж<EFBFBD>״̬
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46><4F> 0 <20><><EFBFBD><EFBFBD>FIFO<46>ǿ<EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_INTTXEmptyStat(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->IF & SPI_IF_TFE_Msk) ? 1 : 0;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXCompleteEn()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXCompleteEn(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE |= (0x01 << SPI_IE_FTC_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXCompleteDis()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6>ֹ
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXCompleteDis(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE &= ~(0x01 << SPI_IE_FTC_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXCompleteClr()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXCompleteClr(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IF = (1 << SPI_IF_FTC_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXCompleteStat()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>״̬
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>ǿ<EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_INTTXCompleteStat(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->IF & SPI_IF_FTC_Msk) ? 1 : 0;
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXWordCompleteEn()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXWordCompleteEn(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE |= (0x01 << SPI_IE_WTC_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXWordCompleteDis()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6>ֹ
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXWordCompleteDis(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IE &= ~(0x01 << SPI_IE_WTC_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXWordCompleteClr()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: <20><>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
void SPI_INTTXWordCompleteClr(SPI_TypeDef * SPIx)
|
||
{
|
||
SPIx->IF = (1 << SPI_IF_WTC_Pos);
|
||
}
|
||
|
||
/******************************************************************************************************************************************
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: SPI_INTTXWordCompleteStat()
|
||
* <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <09><><EFBFBD><EFBFBD>FIFO<46>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>״̬
|
||
* <20><> <20><>: SPI_TypeDef * SPIx ָ<><D6B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>SPI<50><49><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>SPI0<49><30>SPI1
|
||
* <20><> <20><>: uint32_t 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>ѷ<EFBFBD><D1B7><EFBFBD> 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
|
||
* ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||
******************************************************************************************************************************************/
|
||
uint32_t SPI_INTTXWordCompleteStat(SPI_TypeDef * SPIx)
|
||
{
|
||
return (SPIx->IF & SPI_IF_WTC_Msk) ? 1 : 0;
|
||
}
|