PSoC 62S2 Wi-Fi BTパイオニアキットでGPIO出力によりユーザLED「P1_5」を点灯し、GPIO入力によりピン番号「P12_3 」「 P7_6」からデータを入力します。
GPIO入出力アプリの作成
サンプルコード「Hello World」をベースにし、GPIO入力機能を追加してGPIO入出力アプリ「ConnectTest1」を作成します。「infineonのModusToolboxの設定」に従い、プロジェクト名「ConnectTest1」として作成します。
作成したコードを次のように変更します。なお、cyhal_gpio_init関数の詳細仕様については「Hardware Abstraction Layer (HAL)」を参照します。
main.c
・・・ /* Timer object used for blinking the LED */ cyhal_timer_t led_blink_timer; bool read_vald10,read_vald9; ・・・ /* Initialize the User LED */ result = cyhal_gpio_init(CYBSP_USER_LED, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, CYBSP_LED_STATE_OFF); /* GPIO init failed. Stop program execution */ if (result != CY_RSLT_SUCCESS) { CY_ASSERT(0); } // Initialize pin P12_3 as an input result = cyhal_gpio_init(P12_3, CYHAL_GPIO_DIR_INPUT, CYHAL_GPIO_DRIVE_NONE, false); if (result != CY_RSLT_SUCCESS) { CY_ASSERT(0); } // Initialize pin P7_6 as an input result = cyhal_gpio_init(P7_6, CYHAL_GPIO_DIR_INPUT, CYHAL_GPIO_DRIVE_NONE, false); if (result != CY_RSLT_SUCCESS) { CY_ASSERT(0); } ・・・ /* Check if timer elapsed (interrupt fired) and toggle the LED */ if (timer_interrupt_flag) { /* Clear the flag */ timer_interrupt_flag = false; /* Invert the USER LED state */ cyhal_gpio_toggle(CYBSP_USER_LED); // Read the logic level on the input pin read_vald10 =cyhal_gpio_read(P12_3); read_vald9 =cyhal_gpio_read(P7_6); printf("d10: %d d9:%d\r\n",read_vald10,read_vald9); ・・・
GPIO入出力アプリの実行
作成したGPIO入出力アプリ「ConnectTest1」を実行し、ピン番号「P12_3 」、または「 P7_6」に3.3Vを接続して入力が「1」になることを確認します。