92 lines
1.3 KiB
C++
92 lines
1.3 KiB
C++
#include "BaseBoard.h"
|
|
#include "Device\Power.h"
|
|
#include "Device\WatchDog.h"
|
|
#include "Config.h"
|
|
|
|
#include "Kernel\Task.h"
|
|
|
|
|
|
BaseBoard::BaseBoard()
|
|
{
|
|
}
|
|
|
|
void BaseBoard::Init(ushort code, cstring name, COM message)
|
|
{
|
|
auto& sys = (TSys&)Sys;
|
|
sys.Code = code;
|
|
sys.Name = (char*)name;
|
|
|
|
// RTC 提取时间
|
|
auto Rtc = HardRTC::Instance();
|
|
Rtc->LowPower = false;
|
|
Rtc->External = false;
|
|
Rtc->Init();
|
|
Rtc->Start(false, false);
|
|
|
|
// 初始化系统
|
|
sys.Init();
|
|
#if DEBUG
|
|
sys.MessagePort = message; // 指定printf输出的串口
|
|
Sys.ShowInfo();
|
|
|
|
WatchDog::Start(20000, 10000);
|
|
#else
|
|
WatchDog::Start();
|
|
|
|
// 系统休眠时自动进入低功耗
|
|
Power::AttachTimeSleep();
|
|
#endif
|
|
|
|
// Flash最后一块作为配置区
|
|
Config::Current = &Config::CreateFlash();
|
|
}
|
|
|
|
void BaseBoard::InitReboot()
|
|
{
|
|
|
|
}
|
|
|
|
void BaseBoard::InitRestore()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
NRF24L01+ (SPI3) | W5500 (SPI2) | TOUCH (SPI3)
|
|
NSS | NSS | PD6 NSS
|
|
CLK | SCK | SCK
|
|
MISO | MISO | MISO
|
|
MOSI | MOSI | MOSI
|
|
PE3 IRQ | PE1 INT(IRQ) | PD11 INT(IRQ)
|
|
PD12 CE | PD13 NET_NRST | NET_NRST
|
|
PE6 POWER | POWER | POWER
|
|
|
|
ESP8266 (COM4)
|
|
TX
|
|
RX
|
|
PD3 RST
|
|
PE2 POWER
|
|
|
|
TFT
|
|
FSMC_D 0..15 TFT_D 0..15
|
|
NOE RD
|
|
NWE RW
|
|
NE1 RS
|
|
PE4 CE
|
|
PC7 LIGHT
|
|
PE5 RST
|
|
|
|
PE13 KEY1
|
|
PE14 KEY2
|
|
|
|
PE15 LED2
|
|
PD8 LED1
|
|
|
|
|
|
USB
|
|
PA11 PA12
|
|
*/
|