我具有此功能,这是“ HAL”库:
void ENC28_writeBuf(uint16_t len, uint8_t* data)
{
uint8_t spiData[2];
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_7, GPIO_PIN_RESET);
spiData[0] = ENC28_WRITE_BUF_MEM;
HAL_SPI_Transmit(&hspi1, spiData, 1, 100);
HAL_SPI_Transmit(&hspi1, data, len, 100);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_7, GPIO_PIN_SET);
}
但是我想用Standart Perhibral Library编写stm32。如何在STD中编写此功能?
答案 0 :(得分:1)
首先,您需要在std库中编写SPI,GPIO和Clock的初始化函数。在那种情况下,我们无法理解您使用的是哪个SPI1引脚,以及您使用的是哪个stm32处理器。
您需要提供详细的信息,引脚号,stm32处理器号。这就足够了。
答案 1 :(得分:1)
您的函数是一个简单的SPI传输器。
带有HAL_GPIO_WritePin...
的行处理片选引脚,而
HAL_SPI_Transmit()
完成传输工作。
STD库中没有传输完整数据块的功能。
所以你必须使用
void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data);
,然后再传输一个字节。
获取完整示例(包括接口设置)的最佳方法可以在库本身内找到(STM32F4xx_StdPeriph_Examples \ SPI \ SPI_TwoBoards \ SPI_DataExchangeInterrupt)