2016年09月22日

FT245RL VB2010サンプル

FT245RL VB2010サンプル

久々にUSB-パラレル変換基板(AE-FT245RL)を使用することになり、以前の記事を見直したのですが、若干わかりずらい感じがあったので再度投稿しておきたいと思います。

 以前の記事右「FT245RL VB2005サンプル」

今回はVisualBasic2010で動作確認しました。
フォームは下記のように最小限のオブジェクトを配置。

FT245RL VB2010サンプル


【ソースコード Module1.vb】

Module Module1

    Public Declare Function FT_ListDevices Lib "FTD2XX.DLL" _
        (ByVal arg1 As Integer, ByVal arg2 As String, ByVal dwFlags As Integer) As Integer
    Public Declare Function FT_GetNumDevices Lib "FTD2XX.DLL" Alias "FT_ListDevices" _
        (ByRef arg1 As Integer, ByVal arg2 As String, ByVal dwFlags As Integer) As Integer

    Public Declare Function FT_Open Lib "FTD2XX.DLL" _
        (ByVal intDeviceNumber As Short, ByRef lngHandle As Integer) As Integer
    Public Declare Function FT_Close Lib "FTD2XX.DLL" _
        (ByVal lngHandle As Integer) As Integer

    Public Declare Function FT_SetBaudRate Lib "FTD2XX.DLL" _
        (ByVal lngHandle As Integer, ByVal lngBaudRate As Integer) As Integer
    Public Declare Function FT_SetBitMode Lib "FTD2XX.DLL" _
        (ByVal lngHandle As Integer, ByVal intMask As Byte, ByVal intMode As Byte) As Integer
    Public Declare Function FT_GetBitMode Lib "FTD2XX.DLL" _
        (ByVal lngHandle As Integer, ByRef intData As Integer) As Integer

    Public Declare Function FT_ResetDevice Lib "FTD2XX.DLL" _
        (ByVal lngHandle As Integer) As Integer

    Public Declare Function FT_Write Lib "FTD2XX.DLL" _
        (ByVal lngHandle As Integer, ByRef lpszBuffer As Byte, ByVal lngBufferSize As Integer, ByRef lngBytesWritten As Integer) As Integer

    Public Declare Function FT_Read Lib "FTD2XX.DLL" _
        (ByVal lngHandle As Integer, ByRef lpszBuffer As Byte, ByVal lngBufferSize As Integer, ByRef lngBytesReturned As Integer) As Integer

    Public Const FT_OK As Short = 0

    Public lngHandle As Long
    Public lngBytesWritten As Integer

End Module

------------------------------------------------

【ソースコード Form1.vb】

Public Class Form1

    Public Function CMD_FT_Open() As Boolean
        Dim ftstatus As Short

        FT_Close(lngHandle)

        ftstatus = FT_Open(0, lngHandle)
        If ftstatus <> FT_OK Then
            LoggerList.Items.Add("FT_Open Failed status=" & ftstatus)
            Return False
        End If
        '----------------------------------------------------------------------------------------------------
        ftstatus = FT_SetBaudRate(lngHandle, 9600)
        If ftstatus <> FT_OK Then
            LoggerList.Items.Add("FT_SetBaudRate Failed status=" & ftstatus)
            Return False
        End If
        '----------------------------------------------------------------------------------------------------
        'D0~D3を出力、D4~D7を入力に設定
        ftstatus = FT_SetBitMode(lngHandle, &HFS, 1)
        If ftstatus <> FT_OK Then
            LoggerList.Items.Add("FT_SetBitMode Failed status=" & ftstatus)
            Return False
        End If
        CMD_FT_Open = True
    End Function


    Private Sub InputPort()
        Dim ftstatus As Short
        Dim tp_byte As Byte

        ftstatus = FT_GetBitMode(lngHandle, tp_byte)
        If ftstatus <> FT_OK Then
            LoggerList.Items.Add("FT_GetBitMode Failed status=" & ftstatus)
        Else
            LoggerList.Items.Add("FT_GetBitMode OK (" & tp_byte & " )")
        End If
        LoggerList.SelectedIndex = LoggerList.Items.Count - 1
    End Sub


    Private Sub OutputPort(ByRef tmp As Byte)
        Dim ftstatus As Short
        Dim tp_byte(0) As Byte

        tp_byte(0) = tmp
        ftstatus = FT_Write(lngHandle, tp_byte(0), 1, lngBytesWritten)
        If ftstatus <> FT_OK Then
            LoggerList.Items.Add("FT_Write Failed status=" & ftstatus)
        Else
            LoggerList.Items.Add("FT_Write OK (" & tmp & " )")
        End If
        LoggerList.SelectedIndex = LoggerList.Items.Count - 1
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        InputPort()
    End Sub


    Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
        OutputPort(CByte(NumericUpDown1.Value))
    End Sub


    Private Sub Form1_FormClosed1(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        FT_Close(lngHandle)
        End
    End Sub


    Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.LoggerList.Items.Clear()
        CMD_FT_Open()
    End Sub

End Class





タグ :FT245RLVB2010

同じカテゴリー(マイコン開発)の記事
Fusion PCBでエレキー
Fusion PCBでエレキー(2020-04-01 19:00)


上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
FT245RL VB2010サンプル
    コメント(0)