ch347的官方资源包里面,提供了lib静态库,在vs中加载测试,代码如下:
//
//
#include <Windows.h>
#include <iostream>
#include "ch347/CH347DLL.H"
#pragma comment(lib,"ch347/amd64/CH347DLLA64.LIB")
void TestI2C()
{
UCHAR buff[100] = { 0 };
int nLen = 10;
if (!CH347I2C_Set(0, 0x01))
{
printf("CH347I2C_SET err=0x%x\n", GetLastError());
return;
}
for (int i = 0; i < nLen; i++)
{
buff[i] = i + 0x80;
}
CH347WriteEEPROM(0, ID_24C01, 0, nLen, buff);
UCHAR buff2[100] = { 0 };
CH347ReadEEPROM(0, ID_24C01, 0, nLen, buff2);
for (int i = 0; i < nLen; i++)
{
printf("%02x", buff2[i]);
}
}
#define CH347_DEVICE_INDEX 0
int main()
{
HANDLE hDevice = INVALID_HANDLE_VALUE;
do
{
hDevice = CH347OpenDevice(CH347_DEVICE_INDEX);
if (hDevice == INVALID_HANDLE_VALUE)
{
printf("CH347OpenDevice err=0x%x\n", GetLastError());
break;
}
mDeviceInforS DevInformation;
if (!CH347GetDeviceInfor(0, &DevInformation))
{
printf("CH347GetDeviceInfor err=0x%x\n", GetLastError());
break;
}
UCHAR iDriverVer;
UCHAR iDllVer;
UCHAR ibcdDevice;
UCHAR iChipType;
if (!CH347GetVersion(CH347_DEVICE_INDEX,
&iDriverVer,
&iDllVer,
&ibcdDevice,
&iChipType))
{
printf("CH347GetVersion err=0x%x\n", GetLastError());
break;
}
if (!CH347SetTimeout(CH347_DEVICE_INDEX, 3000, 5000))
{
printf("CH347SetTimeout err=0x%x\n", GetLastError());
break;
}
mDeviceInforS DevInformation2;
if (!CH347GetDeviceInfor(0, &DevInformation2))
{
printf("CH347GetDeviceInfor err=0x%x\n", GetLastError());
break;
}
TestI2C();
//CH347I2C_Set(0, 3);
} while (0);
if (hDevice != INVALID_HANDLE_VALUE)
{
CH347CloseDevice(CH347_DEVICE_INDEX);
}
return 0;
}
其中,#pragma comment就是用来加载lib的,#pragma 称为预处理指令,还有很多其他的用法。