メモ書きブログ

日々の覚書

FTDI bitbang on WPF(C#)

FTDIのbitbangを使って、アプリケーションからGPIOを制御する。 公式サイトで.NET用ライブラリであるftd2xx_net.dll を提供しているので、これを使えば簡単に制御できる。

using FTD2XX_NET;

    public partial class MainWindow : Window
    {
        FTDI myFTDI = new FTDI();

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            FTDI_Init();
        }

        private void FTDI_Init()
        {
            if (myFTDI.OpenByIndex(0) != FTDI.FT_STATUS.FT_OK)
                Debug.WriteLine("error");

            if (myFTDI.ResetDevice() != FTDI.FT_STATUS.FT_OK)
                Debug.WriteLine("error");

            if (myFTDI.SetBaudRate(115200) != FTDI.FT_STATUS.FT_OK)
                Debug.WriteLine("error");

            if (myFTDI.SetBitMode(0x0f, FTDI.FT_BIT_MODES.FT_BIT_MODE_ASYNC_BITBANG) != FTDI.FT_STATUS.FT_OK)
                Debug.WriteLine("error");

            Debug.WriteLine("FTDI_Init!");
        }

        private void Button1_Click(object sender, RoutedEventArgs e)
        {
            byte[] databuffer = { 0x01 };
            uint num = 0;
            myFTDI.Write(databuffer, 1, ref num);
        }

        private void Button2_Click(object sender, RoutedEventArgs e)
        {
            byte[] databuffer = { 0x00 };
            uint num = 0;
            myFTDI.Write(databuffer, 1, ref num);
        }
    }