Buenas!
He decidido dar el salto del Nano al stm32f103c8t6, que ofrece unas prestaciones muy superiores por un precio igual o inferior. Para programar la tarjeta estoy utilizando el IDE de Arduino.
Quiero hacer un datalogger donde quiero guardar ciertas variables en una tarjeta SD, pero no consigo hacerlo funcionar. Me da errores al compilar.
Estoy utilizando esta librería --> GitHub - stm32duino/STM32SD: Enables reading and writing on SD card using SD card slot of the STM32 Board.
La configuración de la placa es la siguiente --> Configuracion.JPG
La librería que menciono incluye unos ejemplos, concretamente estoy probando el Dataogger.ino, pero ninguno de los ejemplo compila. Adjunto el mensaje que me sale al compilar:
In file included from C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/Sd2Card.h:40,
from C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/STM32SD.h:22,
from C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\examples\CardInfo\CardInfo.ino:12:
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:58:40: error: variable or field 'BSP_SD_GetCardInfo' declared void
58 | #define HAL_SD_CardInfoTypedef HAL_SD_CardInfoTypeDef
| ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:115:28: note: in expansion of macro 'HAL_SD_CardInfoTypedef'
115 | void BSP_SD_GetCardInfo(HAL_SD_CardInfoTypedef *CardInfo);
| ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:58:40: error: 'HAL_SD_CardInfoTypeDef' was not declared in this scope; did you mean 'HAL_SD_CardInfoTypedef'?
58 | #define HAL_SD_CardInfoTypedef HAL_SD_CardInfoTypeDef
| ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:115:28: note: in expansion of macro 'HAL_SD_CardInfoTypedef'
115 | void BSP_SD_GetCardInfo(HAL_SD_CardInfoTypedef *CardInfo);
| ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:115:52: error: 'CardInfo' was not declared in this scope; did you mean 'SD_CardInfo'?
115 | void BSP_SD_GetCardInfo(HAL_SD_CardInfoTypedef *CardInfo);
| ^~~~~~~~
| SD_CardInfo
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:120:24: error: variable or field 'BSP_SD_MspInit' declared void
120 | void BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~~~~~~~~~~~~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:120:24: error: 'SD_HandleTypeDef' was not declared in this scope; did you mean 'SPI_HandleTypeDef'?
120 | void BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~~~~~~~~~~~~~~
| SPI_HandleTypeDef
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:120:42: error: 'hsd' was not declared in this scope
120 | void BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:120:47: error: expected primary-expression before 'void'
120 | void BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:121:31: error: variable or field 'BSP_SD_Detect_MspInit' declared void
121 | void BSP_SD_Detect_MspInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~~~~~~~~~~~~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:121:31: error: 'SD_HandleTypeDef' was not declared in this scope; did you mean 'SPI_HandleTypeDef'?
121 | void BSP_SD_Detect_MspInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~~~~~~~~~~~~~~
| SPI_HandleTypeDef
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:121:49: error: 'hsd' was not declared in this scope
121 | void BSP_SD_Detect_MspInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:121:54: error: expected primary-expression before 'void'
121 | void BSP_SD_Detect_MspInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:122:26: error: variable or field 'BSP_SD_MspDeInit' declared void
122 | void BSP_SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~~~~~~~~~~~~~~
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:122:26: error: 'SD_HandleTypeDef' was not declared in this scope; did you mean 'SPI_HandleTypeDef'?
122 | void BSP_SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~~~~~~~~~~~~~~
| SPI_HandleTypeDef
C:\Users\55947\Documents\Arduino\libraries\STM32SD-master\src/bsp_sd.h:122:44: error: 'hsd' was not declared in this scope
122 | void BSP_SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params);
| ^~~
C:\Users\
¿Alguien me puede orientar con esto? parece que hay que configurar algunas cosas en archivos .h de la librería, pero no estoy muy familiarizado con el lenguaje C. En la red no he encontrado gran cosa sobre esto. ¿alguien ha conseguido hacer un datalogger con esta librería?
Quizás mas fácil que todo esto es preguntar... alguien ha conseguido utilizar esta placa stm32f103c8t6 y guardar datos en una SD con éxito utilizando el lenguaje y el IDE de Arduino??
Un saludo!!
