“标准库”中的Stm32函数

时间:2018-11-21 07:20:42

标签: c stm32 standard-library

我具有此功能,这是“ 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中编写此功能?

2 个答案:

答案 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)