[RA4 & RA6] RA-Eco-RA4M2串口通信例子

[复制链接]
14|0
AuroraWaltz 发表于 2026-4-23 11:19 | 显示全部楼层 |阅读模式
RA-Eco-RA4M2开发板配置了USB转串口功能,为此非常便于进行串口的测试,其电路见图1所示。

8880169e98f550489c.png
图1 USB转串口电路
要利用该串行电路进行测试,需按图2在RASC中栈中添加UART,并按图3来设置参数。
3248869e98f633799f.png
图2 添加UART
7459269e98f90dc886.png
图3设置参数
此外,为实现串口通讯对LED的扩展,还需对LED所用的引脚加以配置。
3592369e98f9b33270.png
图4 LED电路
6420069e98fa54162e.png
图5 引脚配置
在生成KEIL项目工程后,为主程序添加的代码如下:
  1. void hal_entry(void)

  2. {

  3.     err = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);

  4.     assert(FSP_SUCCESS == err);

  5.     err = R_SCI_UART_Read(&g_uart9_ctrl, uart_rx_buffer, 1);

  6.     assert(FSP_SUCCESS == err);

  7.     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_02, BSP_IO_LEVEL_LOW);

  8.     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);

  9.     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_LOW);

  10.     while(1)

  11.     {

  12.           if(uart_receive_complete_flag)

  13.           {

  14.               uart_receive_complete_flag = false;

  15.               if(uart_rx_buffer[0] == 0x1)

  16.               {

  17.                     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_02, BSP_IO_LEVEL_HIGH);

  18.                     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);

  19.                     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_LOW);

  20.                }

  21.                if(uart_rx_buffer[0] == 0x2)

  22.                {

  23.                     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_02, BSP_IO_LEVEL_LOW);

  24.                     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_HIGH);

  25.                     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_LOW);

  26.                }

  27.                if(uart_rx_buffer[0] == 0x3)

  28.                {

  29.                    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_02, BSP_IO_LEVEL_LOW);

  30.                    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);

  31.                    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_HIGH);

  32.                }

  33.               }

  34.               err = R_SCI_UART_Read(&g_uart9_ctrl, uart_rx_buffer, 1);

  35.               assert(FSP_SUCCESS == err);

  36.       }

  37.       R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);

  38.    }

  39. }
经程序的编译和下载,其测试结果如图6和图7所示,即方式0x1、0x2及0x3时,可分别点亮LED1至LED3,说明功能正确。
9025369e98fcd502ee.png
图6 发送控制码
8640069e98fd6b1a51.png


您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

126

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0