#include #include "common_inc.h" #include "screen.h" #include "robot.h" Robot electron(&hspi1, &hi2c1); /* Thread Definitions -----------------------------------------------------*/ /* Timer Callbacks -------------------------------------------------------*/ /* Default Entry -------------------------------------------------------*/ void Main(void) { HAL_Delay(2000); electron.lcd->Init(Screen::DEGREE_0); electron.lcd->SetWindow(0, 239, 0, 239); while (true) { for (int p = 0; p < 4; p++) { electron.SendUsbPacket(electron.usbBuffer.extraDataTx, 32); electron.ReceiveUsbPacketUntilSizeIs(224); // last packet is 224bytes while (electron.lcd->isBusy); if (p == 0) electron.lcd->WriteFrameBuffer(electron.GetLcdBufferPtr(), 60 * 240 * 3); else electron.lcd->WriteFrameBuffer(electron.GetLcdBufferPtr(), 60 * 240 * 3, true); } HAL_Delay(1); } } extern "C" void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef* hspi) { electron.lcd->isBusy = false; }