TFT_eSPI库与Audio库发生冲突,原因是TFT_eSPI库引用了FS.h,其中命名空间为fs,定义了FS类,Audio.h开启sdFat库后,也有一个fs命名空间,然后在sdFat类基础上又定义了一个FS类。
audio.h文件
#define SDFATFS_USED // activate for SdFat
#ifdef SDFATFS_USED
//typedef File32 File;
typedef FsFile File;
namespace fs {
class FS : public SdFat {
public:
bool begin(SdCsPin_t csPin = SS, uint32_t maxSck = SD_SCK_MHZ(25)) { return SdFat::begin(csPin, maxSck); }
bool begin(SdSpiConfig config){return SdFat::begin(config);}
};
class SDFATFS : public fs::FS {
public:
// sdcard_type_t cardType();
uint64_t cardSize() {
return totalBytes();
}
uint64_t usedBytes() {
// set SdFatConfig MAINTAIN_FREE_CLUSTER_COUNT non-zero. Then only the first call will take time.
return (uint64_t)(clusterCount() - freeClusterCount()) * (uint64_t)bytesPerCluster();
}
uint64_t totalBytes() {
return (uint64_