CH347でLPS22とI2C通信して気圧をPCに表示してみた

CH347T

今度は、CH347でLPS22とI2C通信して気圧をWindows11PCに表示してみました。

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

hello.cpp

#pragma comment(lib, "CH347DLLA64.LIB")
#include <windows.h>
#include <stdio.h>
#include "CH347DLL.H"
unsigned long  serialnum = 0;
unsigned char bufferwr[4096];
unsigned char bufferrd[4096];
int main(void)
{
    CH347OpenDevice(serialnum);
    CH347I2C_Set(serialnum,2);   
    //write to 0x10
    bufferwr[0]=0xBA;
    bufferwr[1]=0x10;
    bufferwr[2]=0xA0;    
    CH347StreamI2C(serialnum,3,bufferwr,0,bufferrd);       

    bufferwr[1]=0x28;
    CH347StreamI2C(serialnum,2,bufferwr,1,bufferrd);       
    printf("PRESS_OUT_XL:%02X\n",bufferrd[0]);
    unsigned int PRESS_OUT_XL = bufferrd[0];
    bufferwr[1]=0x29;
    CH347StreamI2C(serialnum,2,bufferwr,1,bufferrd);       
    printf("PRESS_OUT_L:%02X\n",bufferrd[0]);
    unsigned int PRESS_OUT_L = bufferrd[0];    
    bufferwr[1]=0x2A;
    CH347StreamI2C(serialnum,2,bufferwr,1,bufferrd);       
    printf("PRESS_OUT_H:%02X\n",bufferrd[0]);    
    unsigned int PRESS_OUT_H = bufferrd[0];

    float PRESS_OUT = (PRESS_OUT_H *65536+ PRESS_OUT_L *256 + PRESS_OUT_XL)/4096.0;
    printf("PRESS_OUT:%4.2fhPa\n",PRESS_OUT);

    CH347CloseDevice(serialnum);
    return 0;
}

生成した実行ファイルをPowerShellで実行すると以下のように表示されます。気圧が表示されました。

タイトルとURLをコピーしました