#include "bsp.h" #include "prepherials.h" //void spi_set_gpio() { // gpio_settings s = gpio_default_settings; // s.mode = AF; //// s.ot = OPEN_DRAIN; // s.af = 5; // s.ot = PULL_PUSH; // IF_ERROR_STUCK(gpio_init(gpioa_p, GGPIO_PIN_5, s)) // SCK //// s.ot = PULL_PUSH; // IF_ERROR_STUCK(gpio_init(gpioa_p, GGPIO_PIN_7, s)) // MOSI // s.ot = OPEN_DRAIN; // s.pull = LL_PULLUP; // IF_ERROR_STUCK(gpio_init(gpioa_p, GGPIO_PIN_6, s)) // MISO // //} #define SD_CMD0 0 #define SD_CMD8 8 int main() { // system init and led init_old // system_init(); // led_blue_init(); // // set up port for power on process // // init_old cs pin(PB1) for sdcard // gpio_settings s = gpio_default_settings; // gpio_init(gpiod_p, GGPIO_PIN_12, s); // // spi_set_gpio(); // init_old spi port // spi_init_options_s option = spi_default_option; // spi_init(spi1_p, 20, spi_default_option); // init_old spi // // bool invert = false; // // wait for 10 milliseconds for sdcard to power on // delay_ms(10, false); // if (invert) // gpio_set_low(gpiod_p, GGPIO_PIN_12); ///////////// low // else // gpio_set_high(gpiod_p, GGPIO_PIN_12); ///////////// high // // // pull up CS high then send 74 clock cycles to sdcard // delay_ms(300, false); // // uint8_t data[6] = {0, 0, 0, 0, 0, 0}; // spi_send(spi1_p, data, 6); // spi_send(spi1_p, data, 6); // // wairt for 10 milliseconds // delay_ms(1000, false); // // // gpio_set_high(gpiod_p, GGPIO_PIN_12); ///////////// high // // delay_ms(100, false); // // gpio_set_low(gpiod_p, GGPIO_PIN_12); // // delay_ms(100, false); // // data[0] = SD_CMD0 + (1 << 6); // data[1] = 0x00; // data[2] = 0x00; // data[3] = 0x00; // data[4] = 0x00; // data[5] = 0x95; // spi_send(spi1_p, data, 6); // data[0] = 0xff; // delay_ms(100, true); // spi_send(spi1_p, data, 1); // delay_ms(100, true); // delay_ms(100, true); //// spi_send(spi1_p, data, 6); //// delay_ms(100, true); //// data[0] = 0xff; //// spi_send(spi1_p, data, 1); // while (1) { // // data[0] = SD_CMD0 + (1 << 6); // data[1] = 0x00; // data[2] = 0x00; // data[3] = 0x00; // data[4] = 0x00; // data[5] = 0x95; // spi_send(spi1_p, data, 6); // data[0] = 0xff; // spi_send(spi1_p, data, 1); // delay_ms(100, true); // // the sd card will make di low. // } }