Skip to content

Commit 240bb27

Browse files
committed
Fix sdcard bug #26
1 parent b47d512 commit 240bb27

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

libraries/SD/src/utility/Sd2Card.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
#define USE_SPI_LIB
2121
#include <Arduino.h>
2222
#include "Sd2Card.h"
23+
#include "fpioa.h"
24+
#include "gpio.h"
25+
#include "wiring_digital.h"
2326
//------------------------------------------------------------------------------
2427
#ifndef SOFTWARE_SPI
2528
#ifdef USE_SPI_LIB
@@ -249,8 +252,18 @@ uint8_t Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
249252
uint32_t arg;
250253

251254
// set pin modes
252-
pinMode(chipSelectPin_, OUTPUT);
253-
digitalWrite(chipSelectPin_, HIGH);
255+
//#ifdef BOARD_SIPEED_MAIXDUINO
256+
int gpionum = get_gpio(chipSelectPin_);
257+
if(gpionum >= 0){
258+
fpioa_function_t function = fpioa_function_t(FUNC_GPIOHS0 + gpionum);
259+
fpioa_set_function(chipSelectPin_, function);
260+
gpiohs_set_drive_mode((uint8_t)gpionum, GPIO_DM_OUTPUT);
261+
gpiohs_set_pin((uint8_t)gpionum, GPIO_PV_HIGH);
262+
}
263+
//#else
264+
// pinMode(chipSelectPin_, OUTPUT);
265+
// digitalWrite(chipSelectPin_, HIGH);
266+
//#endif
254267
#ifndef USE_SPI_LIB
255268
pinMode(SPI_MISO_PIN, INPUT);
256269
pinMode(SPI_MOSI_PIN, OUTPUT);

libraries/Sipeed_OV2640/examples/selfie/selfie.ino

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <Sipeed_OV2640.h>
22
#include <Sipeed_ST7789.h>
3-
#include <stdio.h>
43

54
SPIClass spi_(SPI0); // MUST be SPI0 for Maix series on board LCD
65
Sipeed_ST7789 lcd(320, 240, spi_);
@@ -10,19 +9,20 @@ Sipeed_OV2640 camera(FRAMESIZE_QVGA, PIXFORMAT_RGB565);
109

1110
void setup()
1211
{
12+
Serial.begin(115200);
1313
lcd.begin(15000000, COLOR_RED);
1414
if(!camera.begin())
15-
printf("camera init fail\n");
15+
Serial.printf("camera init fail\n");
1616
else
17-
printf("camera init success\n");
17+
Serial.printf("camera init success\n");
1818
camera.run(true);
1919
}
2020

2121
void loop()
2222
{
2323
uint8_t*img = camera.snapshot();
2424
if(img == nullptr || img==0)
25-
printf("snap fail\n");
25+
Serial.printf("snap fail\n");
2626
else
2727
lcd.drawImage(0, 0, camera.width(), camera.height(), (uint16_t*)img);
2828
}

0 commit comments

Comments
 (0)