⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showregvalue.cpp

📁 在手机开发程序中经常用到的一些细节,对初学者会有一定的帮助
💻 CPP
字号:
// ShowRegValue.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>
//#include "Pkfuncs.h"
#include "I2C.h"

#define CLKCON_ADDR	0xB0C0000C

#define GPACON_ADDR	0xB1600000
#define GPADAT_ADDR	0xB1600004

#define GPBCON_ADDR	0xB1600010
#define GPBDAT_ADDR	0xB1600014
#define GPBDN_ADDR	0xB1600018

#define GPCCON_ADDR	0xB1600020
#define GPCDAT_ADDR	0xB1600024
#define GPCDN_ADDR	0xB1600028

#define GPDCON_ADDR	0xB1600030
#define GPDDAT_ADDR	0xB1600034
#define GPDDN_ADDR	0xB1600038

#define GPECON_ADDR	0xB1600040
#define GPEDAT_ADDR	0xB1600044
#define GPEDN_ADDR	0xB1600048

#define GPFCON_ADDR	0xB1600050
#define GPFDAT_ADDR	0xB1600054
#define GPFDN_ADDR	0xB1600058

#define GPGCON_ADDR	0xB1600060
#define GPGDAT_ADDR	0xB1600064
#define GPGDN_ADDR	0xB1600068

#define GPHCON_ADDR	0xB1600070
#define GPHDAT_ADDR	0xB1600074
#define GPHDN_ADDR	0xB1600078

#define GPJCON_ADDR	0xB16000D0
#define GPJDAT_ADDR	0xB16000D4
#define GPJDN_ADDR	0xB16000D8


void ShowValue(HDC hdc,LPTSTR sText)
{
	RECT rc = {0,0,240,320};
	DrawText(hdc,sText,-1,&rc,DT_WORDBREAK);
}
void FormatText(TCHAR * stText)
{
	memset(stText,0,sizeof(TCHAR)*MAX_PATH*2);

	TCHAR Temp[MAX_PATH] = {0};

	RETAILMSG(1,(L"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	unsigned long * TestArea=(unsigned long *)CLKCON_ADDR;	
	swprintf(Temp,L"CLKCON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// A
	RETAILMSG(1,(L"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPACON_ADDR;	
	swprintf(Temp,L"GPACON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPADAT_ADDR;	
	swprintf(Temp,L"GPADAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// B
	RETAILMSG(1,(L"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPBCON_ADDR;	
	swprintf(Temp,L"GPBCON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPBDAT_ADDR;	
	swprintf(Temp,L"GPBDAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPBDN_ADDR;	
	swprintf(Temp,L"GPBDN:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// C
	RETAILMSG(1,(L"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPCCON_ADDR;	
	swprintf(Temp,L"GPCCON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPCDAT_ADDR;	
	swprintf(Temp,L"GPCDAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPCDN_ADDR;	
	swprintf(Temp,L"GPCDN:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// D
	RETAILMSG(1,(L"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPDCON_ADDR;	
	swprintf(Temp,L"GPDCON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPDDAT_ADDR;	
	swprintf(Temp,L"GPDDAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPDDN_ADDR;	
	swprintf(Temp,L"GPDDN:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// E
	RETAILMSG(1,(L"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPECON_ADDR;	
	swprintf(Temp,L"GPECON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPEDAT_ADDR;	
	swprintf(Temp,L"GPEDAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPEDN_ADDR;	
	swprintf(Temp,L"GPEDN:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// F
	RETAILMSG(1,(L"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPFCON_ADDR;	
	swprintf(Temp,L"GPFCON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPFDAT_ADDR;	
	swprintf(Temp,L"GPFDAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPFDN_ADDR;	
	swprintf(Temp,L"GPFDN:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// G
	RETAILMSG(1,(L"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPGCON_ADDR;	
	swprintf(Temp,L"GPGCON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPGDAT_ADDR;	
	swprintf(Temp,L"GPGDAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPGDN_ADDR;	
	swprintf(Temp,L"GPGDN:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// H
	RETAILMSG(1,(L"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPHCON_ADDR;	
	swprintf(Temp,L"GPHCON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPHDAT_ADDR;	
	swprintf(Temp,L"GPHDAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPHDN_ADDR;	
	swprintf(Temp,L"GPHDN:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);
	// J
	RETAILMSG(1,(L"JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ"));

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPJCON_ADDR;	
	swprintf(Temp,L"GPJCON:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPJDAT_ADDR;	
	swprintf(Temp,L"GPJDAT:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);
	TestArea=(unsigned long *)GPJDN_ADDR;	
	swprintf(Temp,L"GPJDN:%08x -",*TestArea);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(stText,Temp);

	RETAILMSG(1,(L"________________________________________________________________"));

}

void FormatIC2Reg(HANDLE hI2c,TCHAR * TextBuff)
{
	I2CPARAM stParam	= {0};
	BYTE    UsResult	= 0;
	DWORD	 dwRet		= 0;
	TCHAR	Temp[MAX_PATH] = {0};

	stParam.chipAddr = 0x16; // attach 0 for read
	//stParam.chipAddr = 0xAB;
	stParam.readOrWrite = IIC_READ_HIGHSPEED;
	stParam.count = 1;
	stParam.pData = NULL;

	stParam.regAddr = 0;
	if( !DeviceIoControl(hI2c,IOCRL_I2CTRANSMIT,&stParam,sizeof(I2CPARAM),&UsResult,1,0,0) )
	{
		dwRet = GetLastError();
	}
	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);	
	swprintf(Temp,L"LTC3445 REG0:%02x -",UsResult);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(TextBuff,Temp);

	stParam.regAddr = 1;
	if( !DeviceIoControl(hI2c,IOCRL_I2CTRANSMIT,&stParam,sizeof(I2CPARAM),&UsResult,1,0,0) )
	{
		dwRet = GetLastError();
	}
	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);	
	swprintf(Temp,L"LTC3445 REG1:%02x -",UsResult);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(TextBuff,Temp);

	stParam.regAddr = 2;
	if( !DeviceIoControl(hI2c,IOCRL_I2CTRANSMIT,&stParam,sizeof(I2CPARAM),&UsResult,1,0,0) )
	{
		dwRet = GetLastError();
	}
	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);	
	swprintf(Temp,L"LTC3445 REG2:%02x -",UsResult);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(TextBuff,Temp);

	stParam.regAddr = 3;
	if( !DeviceIoControl(hI2c,IOCRL_I2CTRANSMIT,&stParam,sizeof(I2CPARAM),&UsResult,1,0,0) )
	{
		dwRet = GetLastError();
	}
	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);	
	swprintf(Temp,L"LTC3445 REG3:%02x -",UsResult);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(TextBuff,Temp);

	stParam.regAddr = 5;
	if( !DeviceIoControl(hI2c,IOCRL_I2CTRANSMIT,&stParam,sizeof(I2CPARAM),&UsResult,1,0,0) )
	{
		dwRet = GetLastError();
	}
	memset(Temp,0,sizeof(TCHAR)*MAX_PATH);	
	swprintf(Temp,L"LTC3445 REG5:%02x -",UsResult);
	RETAILMSG(1,(L"%s",Temp));
	wcscat(TextBuff,Temp);
}

int _tmain(int argc, _TCHAR* argv[])
{
	// TODO: Place code here.
	TCHAR TextBuff[MAX_PATH*2] = {0};
	HDC hdc = GetDC(NULL);
	SetBkMode(hdc,OPAQUE);

	BOOL bLastMode = SetKMode(TRUE);

	HANDLE hI2c = CreateFile(_T("I2C1:"), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
	if(INVALID_HANDLE_VALUE ==hI2c)
		return -1;
	
	
	while (true)
	{
		FormatText(TextBuff);
		FormatIC2Reg(hI2c,TextBuff);
		//RETAILMSG(1,(L"%s",TextBuff));
		ShowValue(hdc,TextBuff);
		Sleep(10000);
	}

	CloseHandle(hI2c);

	SetKMode (bLastMode);
	ReleaseDC(NULL,hdc);
	

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -