#include "VFD.h" #include "main.h" uint8_t DataBuffer[4] = {ADDR, 0, 0, 0}; uint8_t VFD_busy; uint8_t BufPtr = 0; //extern SPI_HandleTypeDef hspi1; void VFD_GRIDREG(void) { HAL_GPIO_WritePin(VFD_CE_GPIO_Port, VFD_CE_Pin, GPIO_PIN_RESET); DataBuffer[1] = CMD_GRIDREG << 4 || 16; VFD_busy = 1; BufPtr = 0; // Zuerst das Adressbyte losschicken, mit VFD_CE = 0: HAL_SPI_Transmit_DMA(&hspi1, DataBuffer, 1); } void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) { if(hspi->Instance == SPI1) { if (BufPtr == 0) { HAL_GPIO_WritePin(VFD_CE_GPIO_Port, VFD_CE_Pin, GPIO_PIN_SET); BufPtr = 1; HAL_SPI_Transmit_DMA(&hspi1, DataBuffer+BufPtr, 3); } } }