118 lines
2.7 KiB
C
118 lines
2.7 KiB
C
|
/************************************************************************************************/
|
|||
|
/**
|
|||
|
* @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 */
|
|||
|
|
|||
|
/**
|
|||
|
* @}
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @}
|
|||
|
*/
|
|||
|
|