CH347でLPS22をI2C通信で読み出してWHO_AM_Iの情報をPCに表示してみた

CH347T

USBシリアル変換ICのCH347からLPS22をI2C通信で読み出しして結果をPCに表示してみました。

CH347のI2Cには、Adafruitの4633のLPS22が載ったボードを接続しました。

WHO_AM_I (0Fh)を読みだしたときに0xB1(固定値)が出ることを確認するためのプログラムです。

hello.cpp

#pragma comment(lib, "CH347DLLA64.LIB")
#include <windows.h>
#include <stdio.h>
#include "CH347DLL.H"

int main(void)
{
    unsigned long  serialnum = 0;
    CH347OpenDevice(serialnum);

    CH347I2C_Set(serialnum,2);   
    unsigned char bufferwr[4096];
    unsigned char bufferrd[4096];
    bufferwr[0]=0xBA;
    bufferwr[1]=0x0F;
    CH347StreamI2C(serialnum,2,bufferwr,1,bufferrd);       
    printf("%02X\n",bufferrd[0]);
    CH347CloseDevice(serialnum);
    return 0;

}

serialnumは、CH347Demo.exeで調べました。DevListの#の手前の番号がその数値のようです。

PowerShellで実行するとB1と表示されたので読み出せたことが分かりました。

ちなみに、以下のmake.batファイルでx64 Native Tools Command Prompt for VS 2022を使ってhello.exeファイルを生成しました。

@cd C:\Program Files\Microsoft Visual Studio\2022\Community
@set destdir=%~dp0
cl /Os /c /Fo%destdir%hello.obj %destdir%hello.cpp
link %destdir%hello.obj /OUT:%destdir%hello.exe ^
/MACHINE:X64 /SUBSYSTEM:CONSOLE /LIBPATH:%destdir%lib

ファイル構成は以下の通りです。

chi2ctest/
 ├ lib/
 │ └ CH347DLLA64.LIB
 ├ CH347DLL.H
  ├ hello.cpp
  └ make.bat
タイトルとURLをコピーしました