20230731_XiaoFuZi_emb/ZheDaXiaoFuZi/Src/Usr/Bsp/McuBspSpi.h

60 lines
2.4 KiB
C
Raw Normal View History

#ifndef _MCU_BSP_SPI_H_
#define _MCU_BSP_SPI_H_
#include "stm32f1xx_hal.h"
#define MCU_BSP_SPI_SPEED_MODE_HIGH 0
#define MCU_BSP_SPI_SPEED_MODE_MEDIUM 1
#define MCU_BSP_SPI_SPEED_MODE_LOW 2
#define MCU_BSP_SPI_CS_HIGH GPIO_PIN_SET
#define MCU_BSP_SPI_CS_LOW GPIO_PIN_RESET
#define MCU_BSP_SPI3_USE_FLAG 1 // 硬件电路是否存在该功能
#define MCU_BSP_SPI3_ID 3
#define MCU_BSP_SPI3_BAUDRATEPRESCALER SPI_BAUDRATEPRESCALER_4
#define MCU_BSP_SPI3_DIRECTION SPI_DIRECTION_2LINES
#define MCU_BSP_SPI3_CLKPHASE SPI_PHASE_1EDGE
#define MCU_BSP_SPI3_CLKPOLARITY SPI_POLARITY_LOW
#define MCU_BSP_SPI3_DATASIZE SPI_DATASIZE_8BIT
#define MCU_BSP_SPI3_FIRSTBIT SPI_FIRSTBIT_MSB
#define MCU_BSP_SPI3_TIMODE SPI_TIMODE_DISABLE
#define MCU_BSP_SPI3_CRCCALCULATION SPI_CRCCALCULATION_DISABLE
#define MCU_BSP_SPI3_CRCPOLYNOMIAL 7
#define MCU_BSP_SPI3_NSS SPI_NSS_SOFT
#define MCU_BSP_SPI3_MODE SPI_MODE_MASTER
#define MCU_BSP_SPI3_SCK_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define MCU_BSP_SPI3_SCK_GPIO GPIOB
#define MCU_BSP_SPI3_SCK_PIN GPIO_PIN_3
#define MCU_BSP_SPI3_SCK_PIN_PULL GPIO_NOPULL // 根据电路原理图上是否有上拉决定
#define MCU_BSP_SPI3_MISO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define MCU_BSP_SPI3_MISO_GPIO GPIOB
#define MCU_BSP_SPI3_MISO_PIN GPIO_PIN_4
#define MCU_BSP_SPI3_MISO_PIN_PULL GPIO_NOPULL // 根据电路原理图上是否有上拉决定
#define MCU_BSP_SPI3_MOSI_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define MCU_BSP_SPI3_MOSI_GPIO GPIOB
#define MCU_BSP_SPI3_MOSI_PIN GPIO_PIN_5
#define MCU_BSP_SPI3_MOSI_PIN_PULL GPIO_NOPULL // 根据电路原理图上是否有上拉决定
#define MCU_BSP_SPI3_CS_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
#define MCU_BSP_SPI3_CS_GPIO GPIOA
#define MCU_BSP_SPI3_CS_PIN GPIO_PIN_15
#define MCU_BSP_SPI3_CS_PIN_PULL GPIO_PULLUP // 根据电路原理图上是否有上拉决定
/* 初始化 */
int McuBspSpiInit(uint8_t SpiId);
/* SPI的读写 */
unsigned char McuBspSpiReadWriteByte(uint8_t SpiId, uint8_t Data);
/* 设置SD卡通信速度 */
int McuBspSpiSetSpeed(uint8_t SpiId, uint8_t mode);
/* CS片选 */
void McuBspSpiCs(uint8_t SpiId, uint8_t flag);
/* SPI SLEEP */
void McuBspSpiSleep(void);
/* SPI WakeUp */
void McuBspSpiWakeUp(void);
#endif