123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /************************************************************************************************/
- /**
- * @file ciu32f003_std_spi.c
- * @author MCU Ecosystem Development Team
- * @brief SPI STD库驱动。
- * 实现SPI初始化等API。
- *
- *
- **************************************************************************************************
- * @attention
- * Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
- *
- **************************************************************************************************
- */
- /************************************************************************************************/
- /**
- * @addtogroup CIU32F003_STD_Driver
- * @{
- */
- /**
- * @addtogroup SPI
- * @{
- *
- */
- /************************************************************************************************/
- /*------------------------------------------includes--------------------------------------------*/
- #include "ciu32f003_std.h"
- #ifdef STD_SPI_PERIPHERAL_USED
- /*-------------------------------------------functions------------------------------------------*/
- /************************************************************************************************/
- /**
- * @addtogroup SPI_External_Functions
- * @{
- *
- */
- /************************************************************************************************/
-
- /**
- * @brief SPI初始化
- * @param spi_init_param SPI初始化结构体
- * @retval 无
- */
- void std_spi_init(std_spi_init_t *spi_init_param)
- {
- /* SPI初始化:
- - 配置SPI通信速率
- - 配置SPI时钟极性
- - 配置SPI时钟相位
- - 配置SPI数据大小端
- */
- MODIFY_REG(SPI1->CR1, (SPI_CR1_BR | SPI_CR1_CPOL | SPI_CR1_CPHA | SPI_CR1_LSBFIRST),
- (spi_init_param->baud_rate_prescaler
- | spi_init_param->clk_polarity
- | spi_init_param->clk_phase
- | spi_init_param->bitorder));
-
- /* 配置SPI主从模式 */
- MODIFY_REG(SPI1->CR1, SPI_CR1_MSTR, spi_init_param->mode);
- }
- /**
- * @brief SPI去初始化
- * @retval 无
- */
- void std_spi_deinit(void)
- {
- std_rcc_apb2_reset(RCC_PERIPH_RESET_SPI1);
- }
- /**
- * @brief SPI结构体初始化
- * @param spi_init_struct SPI初始化结构体
- * @retval 无
- */
- 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_BAUD_PCLKDIV_128;
- spi_init_struct->clk_polarity = SPI_POLARITY_LOW;
- spi_init_struct->clk_phase = SPI_PHASE_1EDGE;
- spi_init_struct->bitorder = SPI_FIRSTBIT_MSB;
- }
- /**
- * @}
- */
- #endif /* STD_SPI_PERIPHERAL_USED */
- /**
- * @}
- */
- /**
- * @}
- */
|