#include "include/HSPI.h" #include "include/spi_register.h" #define __min(a,b) ((a > b) ? (b):(a)) void HSPI::begin() { spi_fifo = (uint32_t*)SPI_FLASH_C0(hspi_port); //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 // SPI clock=CPU clock/8 WRITE_PERI_REG(SPI_FLASH_CLOCK(hspi_port), ((1&SPI_CLKDIV_PRE)<