1 基于RA2L1实现串口DTC数据接收-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于RA2L1实现串口DTC数据接收

RA生态工作室 2023-10-10 09:34 次阅读

介绍

开发环境:IAR FOR ARM 9.30.1

RASC V4.3.0

芯片型号:R7FA2L1AB2DFL#AA0

功能描述

在串口+DTC功能时无法得知接收一帧数据是否接收结束。本例程配合ELC功能联动定时器来判断串口接收字节与字节之间超时来判断一帧数据的接收完成。

主要内容

1、新建RASC工程

如下图所示:

wKgZomWc8biAQ_UGAADwNl_5Ppg232.png

2、安装好RASC

默认安装目录:

C:\Renesas\RA\sc_v2023-01_fsp_v4.3.0\

双击

wKgaomWc9PmANa7wAAABYExxeWc652.png

运行RASC

wKgZomWc9QSAS57tAADRK0QMcks251.png

3、打开后如下图所示:

wKgZomWc9Q6AIlvnAACqe_-tfBA372.png

4、新建工程

wKgZomWc9kqAfzKAAAB3WTEavHs399.pngwKgaomWc9lCABBBJAAC4Hb99PMI144.pngwKgaomWc9laAGMidAABFgRtlD3g276.pngwKgaomWc9lyASi6OAAB9lgtsxTo720.pngwKgaomWc9mKAfRt4AAHJt5OCLY0187.png

5、配置串口PIN脚功能

wKgaomWc9nmAVDCkAAIcJ1bJuOE385.png

6、添加串口功能

wKgaomWc9rCAZnk1AAGKr9ynuf0872.png

7、添加串口dtc收发功能

wKgZomWc9ruABy38AABvrZN7nW0914.pngwKgZomWc9sKAVL1lAACEitEYPG0945.png

8、配置串口属性

wKgZomWc9tiAaJKgAANHb4IxiLA871.pngwKgZomWc9uKAHNwnAADmB4fd-p8484.png

9、添加定时器

wKgZomWc9umAHkZjAAHBHOn-uSA642.png

10、配置定时器

这里以超时时间为2ms为例,用户可以根据实际情况超时时间。

wKgaomWc9vWAC7uaAADPjC3xr2w605.pngwKgaomWc9vyAdq8QAAF0EdupaL0811.pngwKgaomWc9wKABUIAAAFvYf7AzZQ993.png

11、添加ELC

wKgZomWc9xmAbjyCAAGeVQw8fsk547.png

12、所需外设都已经配置好,生成IAR工程

wKgZomWc9yKAae_pAAFZ3XWnvuQ727.png

13、打开IAR工程

wKgaomWc9y2Af1ZIAAF0flYowGg245.png

14、在hal_entry.c文件添加如下代码:

#define TRANSFER_LENGTH 512 transfer_properties_t uart0_dtcinfo1; typedef struct sf_uart_conf { uint8_t uart_txflag; //发送标志 uint8_t uart_rxflag; //接收标志 uint16_t uart_txlen; //发送长度 uint16_t uart_rxlen; //接收长度 uint8_t uart_rxbuf[TRANSFER_LENGTH]; //接收buf uint8_t uart_txbuf[TRANSFER_LENGTH]; //发送buf } sf_uart_conf_t; sf_uart_conf_t uart0;

//2ms定时器0回调函数 void uart0_rxtimeout_cb( timer_callback_args_t* p_args ) { if ( TIMER_EVENT_CYCLE_END == p_args->event ) { //关定时器0 ( void ) R_GPT_Stop( &g_timer0_ctrl ); //获取串口0 接收DTC信息 R_DTC_InfoGet( &g_transfer1_ctrl, &uart0_dtcinfo1 ); //计算串口0接收长度 uart0.uart_rxlen = TRANSFER_LENGTH - uart0_dtcinfo1.transfer_length_remaining; //置发送标志 uart0.uart_rxflag = 1; } }

void hal_entry(void) { /* TODO: add your own code here */ //初始化定时器0 2ms间隔中断 R_GPT_Open( &g_timer0_ctrl, &g_timer0_cfg ); //初始化串口0 R_SCI_UART_Open( &g_uart0_ctrl, &g_uart0_cfg ); //初始化ELC联动 R_ELC_Open( &g_elc_ctrl, &g_elc_cfg ); //使能ECL R_ELC_Enable( &g_elc_ctrl ); //使能定时器0 ( void ) R_GPT_Enable( &g_timer0_ctrl ); //智串口0发送标志 uart0.uart_txflag = 1; while ( true ) { if ( uart0.uart_rxflag ) { uart0.uart_rxflag = 0; uart0.uart_txlen = uart0.uart_rxlen; R_SCI_UART_Write( &g_uart0_ctrl, uart0.uart_rxbuf, uart0.uart_txlen ); } if ( uart0.uart_txflag ) { uart0.uart_txflag = 0; R_SCI_UART_Read( &g_uart0_ctrl, uart0.uart_rxbuf, TRANSFER_LENGTH ); } } #if BSP_TZ_SECURE_BUILD /* Enter non-secure code */ R_BSP_NonSecureEnter(); #endif }

15、仿真测试如下图所示:

wKgaomWc9ziARoBqAAIlzYCbOYs416.png

结论

该方式没有问题,可以正常应用到开发中。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114713
  • 串口
    +关注

    关注

    14

    文章

    1551

    浏览量

    76417
收藏 人收藏

    评论

    相关推荐

    瑞萨电子RA2L1英文数据手册

    本资料包含瑞萨电子RA2L1英文数据手册
    发表于 10-21 16:21 0次下载

    RA2L1硬件用户手册(中英)

    RA2L1硬件用户手册(中英)
    发表于 11-07 19:49 6次下载
    <b class='flag-5'>RA2L1</b>硬件用户手册(中英)

    RA2L1开发板资料

    RA2L1开发板资料
    发表于 11-07 19:50 18次下载
    <b class='flag-5'>RA2L1</b>开发板资料

    基于RA2L1串口及J-Link的烧写说明

    使用串口和J-Link对RA2L1烧写程序 本节介绍使用串口工具对RA2L1进行程序的烧写。采用CPK-RA2L1开发板,硬件如下图所示。
    的头像 发表于 11-25 12:40 1577次阅读

    基于RA2L1串口及J-Link的烧写说明

    本节介绍使用串口工具对RA2L1进行程序的烧写。采用CPK-RA2L1开发板,硬件如下图所示。
    的头像 发表于 11-25 13:55 1736次阅读

    RA2L1 组用户手册:硬件

    RA2L1 组用户手册:硬件
    发表于 01-09 19:06 5次下载
    <b class='flag-5'>RA2L1</b> 组用户手册:硬件

    RA2L1数据

    RA2L1数据
    发表于 01-09 19:06 0次下载
    <b class='flag-5'>RA2L1</b> 组<b class='flag-5'>数据</b>表

    RA2L1 组电容式触控评估系统快速入门指南

    RA2L1 组电容式触控评估系统快速入门指南
    发表于 02-03 19:24 0次下载
    <b class='flag-5'>RA2L1</b> 组电容式触控评估系统快速入门指南

    基于RA2L1实现串口DTC数据接收

    串口+DTC功能时无法得知接收一帧数据是否接收结束。本例程配合ELC功能联动定时器来判断串口
    的头像 发表于 05-04 10:50 976次阅读
    基于<b class='flag-5'>RA2L1</b><b class='flag-5'>实现</b><b class='flag-5'>串口</b><b class='flag-5'>DTC</b><b class='flag-5'>数据</b><b class='flag-5'>接收</b>

    RA2L1 组用户手册:硬件

    RA2L1 组用户手册:硬件
    发表于 06-30 18:50 1次下载
    <b class='flag-5'>RA2L1</b> 组用户手册:硬件

    RA2L1数据

    RA2L1数据
    发表于 06-30 18:50 0次下载
    <b class='flag-5'>RA2L1</b> 组<b class='flag-5'>数据</b>表

    RA2L1 组 Capacitive Touch Evaluation System 用户手册

    RA2L1 组 Capacitive Touch Evaluation System 用户手册
    发表于 07-04 20:38 0次下载
    <b class='flag-5'>RA2L1</b> 组 Capacitive Touch Evaluation System 用户手册

    RA2L1:使用CLKOUT给MCU CAN模块提供时钟

    RA2L1:使用CLKOUT给MCU CAN模块提供时钟
    的头像 发表于 11-02 16:27 717次阅读
    <b class='flag-5'>RA2L1</b>:使用CLKOUT给MCU CAN模块提供时钟

    基于RA2L1串口及J-Link的烧写说明

    基于RA2L1串口及J-Link的烧写说明
    的头像 发表于 08-19 08:08 575次阅读
    基于<b class='flag-5'>RA2L1</b>的<b class='flag-5'>串口</b>及J-Link的烧写说明

    瑞萨RA2L1系列CAN通信应用

    瑞萨RA2L1系列CAN通信应用
    的头像 发表于 06-26 08:06 601次阅读
    瑞萨<b class='flag-5'>RA2L1</b>系列CAN通信应用