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」になることを確認します。
