CIU32_L051_M307R/Peripheral/CIU32L051_Lib/Source/ciu32l051_std_spi.c

118 lines
2.7 KiB
C
Raw Permalink Normal View History

/************************************************************************************************/
/**
* @file ciu32l051_std_spi.c
* @author MCU Ecosystem Development Team
* @brief SPI STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ʵ<EFBFBD><EFBFBD>SPI<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>API<EFBFBD><EFBFBD>
*
*
**************************************************************************************************
* @attention
* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
*
**************************************************************************************************
*/
/************************************************************************************************/
/**
* @addtogroup CIU32L051_STD_Driver
* @{
*/
/**
* @addtogroup SPI
* @{
*
*/
/************************************************************************************************/
/*------------------------------------------includes--------------------------------------------*/
#include "ciu32l051_std.h"
#ifdef STD_SPI_PERIPHERAL_USED
/*-------------------------------------------functions------------------------------------------*/
/************************************************************************************************/
/**
* @addtogroup SPI_External_Functions
* @{
*
*/
/************************************************************************************************/
/**
* @brief SPI<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
* @param spix SPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param spi_init_param SPI<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
void std_spi_init(SPI_t *spix, std_spi_init_t *spi_init_param)
{
/* <20><><EFBFBD><EFBFBD>SPIͨ<49><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
std_spi_set_baud_rate(spix,spi_init_param->baud_rate_prescaler);
/* <20><><EFBFBD><EFBFBD>SPIʱ<49>Ӽ<EFBFBD><D3BC><EFBFBD> */
std_spi_set_polarity(spix,spi_init_param->clk_polarity);
/* <20><><EFBFBD><EFBFBD>SPI<50><49>λ */
std_spi_set_phase(spix,spi_init_param->clk_phase);
/* <20><><EFBFBD><EFBFBD>SPIģʽ */
std_spi_set_mode(spix,spi_init_param->mode);
}
/**
* @brief SPIȥ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
* @param spix SPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
void std_spi_deinit(SPI_t *spix)
{
std_spi_disable(spix);
if(spix == SPI1)
{
std_rcc_apb2_reset(RCC_PERIPH_RESET_SPI1);
std_rcc_apb2_clk_disable(RCC_PERIPH_CLK_SPI1);
}
else if (spix == SPI2)
{
std_rcc_apb1_reset(RCC_PERIPH_RESET_SPI2);
std_rcc_apb1_clk_disable(RCC_PERIPH_CLK_SPI2);
}
else
{
/* <20>޲<EFBFBD><DEB2><EFBFBD> */
}
}
/**
* @brief SPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
* @param spi_init_struct SPI<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
void std_spi_struct_init(std_spi_init_t *spi_init_struct)
{
spi_init_struct->mode = SPI_MODE_MASTER;
spi_init_struct->baud_rate_prescaler = SPI_BAUDRATEPRESCALER_128;
spi_init_struct->clk_polarity = SPI_POLARITY_LOW;
spi_init_struct->clk_phase = SPI_PHASE_1EDGE;
}
/**
* @}
*/
#endif /* STD_SPI_PERIPHERAL_USED */
/**
* @}
*/
/**
* @}
*/