#ifndef HSPI_H #define HSPI_H #include "SPIImpl.h" #include "SPIdef.h" extern "C" { #include "spi_register.h" #include "ets_sys.h" #include "osapi.h" #include "os_type.h" } class HSPI : public SPIImpl { public: virtual void begin() { //bit9 of PERIPHS_IO_MUX should be cleared when HSPI clock doesn't equal CPU clock WRITE_PERI_REG(PERIPHS_IO_MUX, 0x105); PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_HSPIQ_MISO); // gpio12 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_HSPID_MOSI); // gpio13 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_HSPI_CLK); // gpio14 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_HSPI_CS0); // gpio15 SET_PERI_REG_MASK(SPI_USER(HSPI), SPI_CS_SETUP|SPI_CS_HOLD|SPI_USR_COMMAND); CLEAR_PERI_REG_MASK(SPI_USER(HSPI), SPI_FLASH_MODE); // SPI clock=CPU clock/8 WRITE_PERI_REG(SPI_CLOCK(HSPI), ((1&SPI_CLKDIV_PRE)<