1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- * WaveShareOLED1in5.h
- *
- * Created on: Mar 23, 2021
- * Author: spinner
- */
- #ifndef WAVESHAREOLED1IN5_H_
- #define WAVESHAREOLED1IN5_H_
- #ifdef __cplusplus
- #include <stm32f4xx_hal.h>
- #include <cmsis_os2.h>
- #include <OLED_config.h>
- #include "configuration.h"
- #include "templates/graphics_types.hpp"
- #include "templates/Surface4Bit.hpp"
- #define WSOLED_MAX_TX 256
- class WaveShare_OLED1in5 {
- private:
- SPI_HandleTypeDef* hspi = nullptr;
- osSemaphoreId_t txCompleteId = nullptr;
- osMutexId_t spiLock = nullptr;
- COLOR pixBuf[OLED_WIDTH / 2 * OLED_HEIGHT] = {};
- OLED_DIS desc = {};
- void _write(uint8_t byte);
- void _write(uint8_t const* bytes, size_t size);
- void waitTxComplete();
- void writeReg(uint8_t const* reg, size_t size);
- void writeReg(uint8_t reg);
- void writeData(uint8_t const* data, size_t size);
- void reset();
- void initReg();
- public:
- WaveShare_OLED1in5() = default;
- virtual ~WaveShare_OLED1in5() = default;
- static WaveShare_OLED1in5 instance;
- void init(SPI_HandleTypeDef* hspi);
- void onTxComplete();
- void displayInit(OLED_SCAN_DIR scanDir);
- void setGramScanWay(OLED_SCAN_DIR scanDir);
- void setCursor(POINT Xpoint, POINT Ypoint);
- void setColor(POINT Xpoint, POINT Ypoint, COLOR Color);
- void setWindow(POINT Xstart, POINT Ystart, POINT Xend, POINT Yend);
- void clear(COLOR Color);
- void display(void);
- void display(Surface4Bit<SCR_PARAMS>* surface);
- };
- extern "C" {
- #endif
- void oledOnTxComplete();
- #ifdef __cplusplus
- }
- #endif
- #endif /* WAVESHAREOLED1IN5_H_ */
|