📄 spi.h
字号:
/*
Author: Guixiang.Huang
Data: V1: 2007-3-2
V2: //184segs change to 181segs display
V3: 2007-3-6 //ADD 3 functions
V4: 2007-3-8 //add new functions about Tempsense, busys; modify spi_read32_new
Use for: M5212 EPD DRIVE AND DISPALY
*/
#ifndef SPI_H_
#define SPI_H_
#define DLL_EXPORT extern "C" __declspec(dllexport)
#define DLL_IMPORT extern "C" __declspec(dllimport)
#define NSECOND 1000000000 //10^9
#define USECOND 1000000
#define PORT_ADDR 0x378
//////////////////////define data line///////////
//SPI A
#define A_SPI_CE 0x02//25pin3
#define A_SPI_CLK 0x01//25pin2
#define A_SPI_MOSI 0x04//25pin4
//#define A_SPI_MISO 0x08//25pin5
#define A_SPI_MISO 0x40//25pin10, 0x379
#define A_RESET 0x08//25pin5
//SPI B
#define B_SPI_CE 0x20//25pin7
#define B_SPI_CLK 0x10//25pin6
#define B_SPI_MOSI 0x40//25pin8
//#define B_SPI_MISO 0x80//25pin9
#define B_SPI_MISO 0x80//25pin11, 0x379 //~pin11,需要倒相位
#define B_RESET 0x80//25pin9
#define RES A_RESET
#define SPI_CE A_SPI_CE
#define SPI_CLK A_SPI_CLK
#define SPI_MOSI A_SPI_MOSI
#define SPI_MISO A_SPI_MISO
#define REG_BACKGROUND_OFF 0x00000000
#define REG_BACKGROUND_ON 0x00000001
#define BUSY_BITS 0x0000c000
#define TEMP_BITS 0x00fb0000
//////////////////////define function////////////
LONGLONG wait_ns(int ns);
LONGLONG wait_ns2(int ns, LONGLONG freq);
LONGLONG wait_us(int us);
LONGLONG testSPI_CLK();
void CLR_RES();
void SET_RES();
void spi_CLR_CE();
void spi_SET_CE();
void spi_Read(BYTE* data);
void spi_Write(BYTE data);
void spi_ReadWrite(BYTE writeByte, BYTE* readByte);
int SPI_Write32(DWORD writeData);
int SPI_Write32_New(DWORD writeData);
int SPI_Read32(DWORD *readData);
DWORD SPI_Read32_New();
void B_CLR_RES();
void B_SET_RES();
void B_SPI_CLR_CE();
void B_SPI_SET_CE();
void B_SPI_Read(BYTE* data);
void B_SPI_Write(BYTE data);
void B_SPI_ReadWrite(BYTE writeByte, BYTE* readByte);
int B_SPI_Write32(DWORD writeData);
int B_SPI_Write32_New(DWORD writeData);
int B_SPI_Read32(DWORD *readData);
DWORD B_SPI_Read32_New();
DWORD cpuFre();
LONGLONG cpuFrequent(); //LONGLONG == __int64
//////////////////////////////////////////////////
short _stdcall Inp32(short PortAddress);
void _stdcall Out32(short PortAddress, short data);
///////////////////EPD DRIVER/////////////////////////////
//////////////////PART A
DLL_EXPORT void PowerOn();
DLL_EXPORT void PowerOff();
DLL_EXPORT void UpdateIC(BYTE nSeg);
DLL_EXPORT void UpdateIC_Array(BYTE* pSegArray, BYTE nArraySize);
DLL_EXPORT void UpdateICArrayn(CString tmpStr);
DLL_EXPORT void UpdateICArrayn_New(char* pStr);
DLL_EXPORT void White();
DLL_EXPORT void Black();
DLL_EXPORT void BackgroundOff();
DLL_EXPORT void BackgroundOn();
DLL_EXPORT BOOL MISO();
DLL_EXPORT DWORD MISO_DW();
DLL_EXPORT BYTE CheckBusy();
DLL_EXPORT BYTE TempSense();
DLL_EXPORT void EnableTemper();
/////////////////////PART B
DLL_EXPORT void B_PowerOn();
DLL_EXPORT void B_PowerOff();
DLL_EXPORT void B_UpdateIC(BYTE nSeg);
DLL_EXPORT void B_UpdateIC_Array(BYTE* pSegArray, BYTE nArraySize);
DLL_EXPORT void B_UpdateICArrayn(CString tmpStr);
DLL_EXPORT void B_UpdateICArrayn_New(char* pStr);
DLL_EXPORT void B_White();
DLL_EXPORT void B_Black();
DLL_EXPORT void B_BackgroundOff();
DLL_EXPORT void B_BackgroundOn();
DLL_EXPORT BOOL B_MISO();
DLL_EXPORT DWORD B_MISO_DW();
DLL_EXPORT BYTE B_CheckBusy();
DLL_EXPORT BYTE B_TempSense();
DLL_EXPORT void B_EnableTemper();
DWORD GET_SEG_REG(BYTE seg);
///////////////////////////////////////////////////////////
void PowerOn2();
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -