/** * @file spi.h * @author chenjun (chenjun@radareye.com.cn) * @brief * @version 0.1 * @date 2022-04-06 * * @copyright Copyright (c) 2022 * */ #ifndef __SPI_H__ #define __SPI_H__ #include "n32g45x.h" #ifndef NULL #define NULL ((void*)0) #endif #define SPI_2 SPI2 #define SPI_2_CLK RCC_APB1_PERIPH_SPI2 #define SPI_2_GPIO GPIOB #define SPI_2_GPIO_CLK RCC_APB2_PERIPH_GPIOB #define SPI_2_PIN_NSS GPIO_PIN_12 #define SPI_2_PIN_SCK GPIO_PIN_13 #define SPI_2_PIN_MISO GPIO_PIN_14 #define SPI_2_PIN_MOSI GPIO_PIN_15 #define SPI_2_DMA DMA1 #define SPI_2_DMA_CLK RCC_AHB_PERIPH_DMA1 #define SPI_2_Rx_DMA_Channel DMA1_CH4 #define SPI_2_Rx_DMA_FLAG DMA1_FLAG_TC4 #define SPI_2_Tx_DMA_Channel DMA1_CH5 #define SPI_2_Tx_DMA_FLAG DMA1_FLAG_TC5 #define SPI_MASTER_DR_Base 0x4001300C #define SPI_SLAVE_DR_Base 0x4000380C /** * @brief Chip Select pin low */ #define SPI_2_CS_LOW() GPIO_ResetBits(SPI_2_GPIO, SPI_2_PIN_NSS) /** * @brief Chip Select pin high */ #define SPI_2_CS_HIGH() GPIO_SetBits(SPI_2_GPIO, SPI_2_PIN_NSS) #define SPI_CS_LOW() SPI_2_CS_LOW() #define SPI_CS_HIGH() SPI_2_CS_HIGH() void spi_init(void); void spi_write_read(SPI_Module *SPIx, uint8_t *ptdata, uint8_t *prdata, uint16_t len); #endif /*__SPI_H__*/