Функция Stm32 в «Стандартной библиотеке» - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть эта функция, и это библиотека "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);
}

Но я хочу написать со стандартной библиотекой Perhibral для stm32.Как я могу написать эту функцию в STD?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Ваша функция - простой 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)

0 голосов
/ 21 ноября 2018

Во-первых, вам нужно записать функции инициализации SPI, GPIO и Clock в библиотеку std.В этом случае мы не можем понять, какие контакты SPI1 вы используете и какой процессор stm32 используете.Этого будет достаточно, чтобы ответить.

...