LoginSignup
1
0

More than 1 year has passed since last update.

Renesas RAマイコンを使ってみよう(5)~UARTとスイッチを使ってみよう~2

Posted at

Renesas RAマイコンを使ってみよう(4)~UARTを使ってみよう~ の続きです。
https://qiita.com/usashirou/items/76d4a441253a25185adb

スイッチを押したらUARTで送信するプログラムにしてみましょう。
R_IOPORT_PinRead によりLED及びURATの送信をするプログラムになります。

修正部分

以下のように修正します。
image.png

R_IOPORT_PinRead

により R_SCI_UART_Write を送信しています。

プログラム

void hal_entry(void)
{
    uint8_t data[] = "SW1\n\r";
    R_SCI_UART_Open(&g_uart0_ctrl, &g_uart0_cfg);

    /* TODO: add your own code here */
    while(1){
        bsp_io_level_t SW1_status;
             R_IOPORT_PinRead(&g_ioport_ctrl, SW1, &SW1_status);
                    if(SW1_status){
                        R_IOPORT_PinWrite(&g_ioport_ctrl, LED1,BSP_IO_LEVEL_HIGH );
                    }else{
                        R_SCI_UART_Write(&g_uart0_ctrl, data, sizeof(data));
                        R_IOPORT_PinWrite(&g_ioport_ctrl, LED1,BSP_IO_LEVEL_LOW );
                    }
         R_BSP_SoftwareDelay(3, BSP_DELAY_UNITS_MILLISECONDS);
    }
}

UARTの受信に応じて動作するプログラム

次に、UARTで受信した内容を基にLEDを点灯させてみます。
最初に R_SCI_UART_Read によりUARTを読み込みます。

GPIO Read

Developer Assistance を開いて Call R_SCI_UART_Read を探します。
image.png

Case文

読み込んだ UART に応じてcase文を構成しました。
今回は、文字列として1,2,それ以外の場合にLEDの点灯方法が変わるようになっています。

プログラム

void hal_entry(void)
{
    uint8_t msg[] ="Hello Renesas RA \r\n";
    uint8_t rev;

     R_SCI_UART_Open(&g_uart0_ctrl, &g_uart0_cfg);
     R_SCI_UART_Write(&g_uart0_ctrl, msg, sizeof(msg));
     
  while(1){
      R_SCI_UART_Read(&g_uart0_ctrl, &rev, 1000);
            switch(rev){
            case '1':
                R_IOPORT_PinWrite(&g_ioport_ctrl, LED1,BSP_IO_LEVEL_HIGH );
                R_IOPORT_PinWrite(&g_ioport_ctrl, LED2_PMOD1_IRQ,BSP_IO_LEVEL_LOW );

                break;
            case '2':
                R_IOPORT_PinWrite(&g_ioport_ctrl, LED1,BSP_IO_LEVEL_LOW );
                R_IOPORT_PinWrite(&g_ioport_ctrl, LED2_PMOD1_IRQ,BSP_IO_LEVEL_HIGH );

                break;
            default:
                R_IOPORT_PinWrite(&g_ioport_ctrl, LED1,BSP_IO_LEVEL_LOW );
                R_IOPORT_PinWrite(&g_ioport_ctrl, LED2_PMOD1_IRQ,BSP_IO_LEVEL_LOW );
                break;
            }
      }
}

image.png

出力の様子

スクリーンショット

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0