USBシリアル変換IC、CH347TのGPIOをWindowsPCから操作してみた

CH347T

USBシリアル変換ICのCH347TのGPIO1を操作してみました。Windows11PCとUSB接続して操作しています。

以下のピン設定をこのようにしたのでモードはMode1となります。

RTS1:Pull-down
DTR1:Open

プログラム(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);
    CH347Uart_Open(serialnum);
    printf("GPIO1/RTS0/MISO/TDO/Pin7\n");
    printf("GPIO1:HIGH\n");
    CH347GPIO_Set(serialnum,0x02,0x02,0xEF);
    Sleep(500);
    printf("GPIO1:LOW\n");    
    CH347GPIO_Set(serialnum,0x02,0x02,0xED);    
    Sleep(500);
    printf("GPIO1:HIGH\n");
    CH347GPIO_Set(serialnum,0x02,0x02,0xEF);
    Sleep(500);
    printf("GPIO1:LOW\n");    
    CH347GPIO_Set(serialnum,0x02,0x02,0xED);    
    Sleep(500);
    printf("GPIO1:HIGH\n");
    CH347GPIO_Set(serialnum,0x02,0x02,0xEF);
    Sleep(500);
    printf("GPIO1:LOW\n");    
    CH347GPIO_Set(serialnum,0x02,0x02,0xED);    
    Sleep(500);        
    printf("GPIO1:HIGH\n");    
    CH347GPIO_Set(serialnum,0x02,0x02,0xEF);
    printf("Close\n");
    CH347Uart_Close(serialnum);
    CH347CloseDevice(serialnum);
    return 0;
}

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

PowerShellで実行すると以下のように表示され、GPIO1ピンがHIGH、LOWを繰り返しました。

GPIO1/RTS0/MISO/TDO/Pin7
GPIO1:HIGH
GPIO1:LOW
GPIO1:HIGH
GPIO1:LOW
GPIO1:HIGH
GPIO1:LOW
GPIO1:HIGH
Close

ちなみに、以下の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

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

chledtika/
 ├ lib/
 │ └ CH347DLLA64.LIB
 ├ CH347DLL.H
  ├ hello.cpp
  └ make.bat

CH347DLLA64.LIB(amd64)とCH347DLL.Hは以下のフォルダに入っていました。

CH341PAR\LIB\CH347
タイトルとURLをコピーしました