衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于RA2L1實現(xiàn)串口DTC數(shù)據(jù)接收

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2023-05-04 10:50 ? 次閱讀

介紹

開發(fā)環(huán)境:IAR FOR ARM 9.30.1

RASC V4.3.0

芯片型號:R7FA2L1AB2DFL#AA0

功能描述

在串口+DTC功能時無法得知接收一幀數(shù)據(jù)是否接收結(jié)束。本例程配合ELC功能聯(lián)動定時器來判斷串口接收字節(jié)與字節(jié)之間超時來判斷一幀數(shù)據(jù)的接收完成。

主要內(nèi)容

1新建RASC工程

RASC v4.3.0下載鏈接:

https://github.com/renesas/fsp/releases

如下圖所示:

dfd44254-e71f-11ed-ab56-dac502259ad0.png

2安裝好RASC

默認安裝目錄:

C:RenesasRAsc_v2023-01_fsp_v4.3.0

雙擊dfe5afd0-e71f-11ed-ab56-dac502259ad0.png?運行RASC

dff0512e-e71f-11ed-ab56-dac502259ad0.png

3打開后如下圖所示:

dff98b90-e71f-11ed-ab56-dac502259ad0.png

4新建工程

e0048b8a-e71f-11ed-ab56-dac502259ad0.pnge012d24e-e71f-11ed-ab56-dac502259ad0.pnge0225e62-e71f-11ed-ab56-dac502259ad0.pnge02dd81e-e71f-11ed-ab56-dac502259ad0.pnge037ea34-e71f-11ed-ab56-dac502259ad0.png

5配置串口PIN腳功能

e044378a-e71f-11ed-ab56-dac502259ad0.png

6添加串口功能

e066db00-e71f-11ed-ab56-dac502259ad0.png

7添加串口dtc收發(fā)功能

e06ff82a-e71f-11ed-ab56-dac502259ad0.pnge07a4cee-e71f-11ed-ab56-dac502259ad0.png

8配置串口屬性

e08194a4-e71f-11ed-ab56-dac502259ad0.pnge08e2994-e71f-11ed-ab56-dac502259ad0.png

9添加定時器

e098d560-e71f-11ed-ab56-dac502259ad0.png

10配置定時器

這里以超時時間為2ms為例,用戶可以根據(jù)實際情況超時時間。

e0a90836-e71f-11ed-ab56-dac502259ad0.pnge0c04b0e-e71f-11ed-ab56-dac502259ad0.pnge0caf0fe-e71f-11ed-ab56-dac502259ad0.png

11添加ELC

e0d50f30-e71f-11ed-ab56-dac502259ad0.png

12所需外設都已經(jīng)配置好,生成IAR工程

e0ef3608-e71f-11ed-ab56-dac502259ad0.png

13打開IAR工程

e0fc28fe-e71f-11ed-ab56-dac502259ad0.png

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

#define TRANSFER_LENGTH     512
transfer_properties_t uart0_dtcinfo1;


typedef struct sf_uart_conf
{
  uint8_t uart_txflag;                //發(fā)送標志
  uint8_t uart_rxflag;                //接收標志
  uint16_t uart_txlen;                //發(fā)送長度
  uint16_t uart_rxlen;                //接收長度
  uint8_t uart_rxbuf[TRANSFER_LENGTH];        //接收buf
  uint8_t uart_txbuf[TRANSFER_LENGTH];        //發(fā)送buf
} sf_uart_conf_t;


sf_uart_conf_t uart0;
//2ms定時器0回調(diào)函數(shù)
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;
    //置發(fā)送標志
    uart0.uart_rxflag = 1;
  }
}
//串口中斷回調(diào)函數(shù)
void uart0isr_cb( uart_callback_args_t* p_args )
{
  /* Handle the UART event */
  switch ( p_args->event )
  {
    /* Received a character */
    case UART_EVENT_RX_CHAR:
      {
        break;
      }
    /* Receive complete */
    case UART_EVENT_RX_COMPLETE:
      {
        break;
      }
    /* Transmit complete */
    case UART_EVENT_TX_COMPLETE:
      {
       //置串口0發(fā)送完成標志,清接收標志
        uart0.uart_rxflag = 0;
        uart0.uart_txflag = 1;
        break;
      }
    default:
      {
      }
  }
}
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聯(lián)動
  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發(fā)送標志
  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

仿真測試如下圖所示:

e105774c-e71f-11ed-ab56-dac502259ad0.png

結(jié)論

該方式?jīng)]有問題,可以正常應用到開發(fā)中。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9165

    瀏覽量

    369170
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115367
  • IAR
    IAR
    +關注

    關注

    5

    文章

    354

    瀏覽量

    36780
  • 串口
    +關注

    關注

    14

    文章

    1557

    瀏覽量

    77036
  • 數(shù)據(jù)接收

    關注

    0

    文章

    12

    瀏覽量

    7833

原文標題:基于RA2L1實現(xiàn)串口DTC數(shù)據(jù)接收

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    瑞薩電子RA2L1英文數(shù)據(jù)手冊

    本資料包含瑞薩電子RA2L1英文數(shù)據(jù)手冊
    發(fā)表于 10-21 16:21 ?0次下載

    RA2L1硬件用戶手冊(中英)

    RA2L1硬件用戶手冊(中英)
    發(fā)表于 11-07 19:49 ?7次下載
    <b class='flag-5'>RA2L1</b>硬件用戶手冊(中英)

    RA2L1開發(fā)板資料

    RA2L1開發(fā)板資料
    發(fā)表于 11-07 19:50 ?19次下載
    <b class='flag-5'>RA2L1</b>開發(fā)板資料

    基于RA2L1串口及J-Link的燒寫說明

    使用串口和J-Link對RA2L1燒寫程序 本節(jié)介紹使用串口工具對RA2L1進行程序的燒寫。采用CPK-RA2L1開發(fā)板,硬件如下圖所示。
    的頭像 發(fā)表于 11-25 12:40 ?1665次閱讀

    基于RA2L1串口及J-Link的燒寫說明

    本節(jié)介紹使用串口工具對RA2L1進行程序的燒寫。采用CPK-RA2L1開發(fā)板,硬件如下圖所示。
    的頭像 發(fā)表于 11-25 13:55 ?1824次閱讀

    RA2L1 組用戶手冊:硬件

    RA2L1 組用戶手冊:硬件
    發(fā)表于 01-09 19:06 ?5次下載
    <b class='flag-5'>RA2L1</b> 組用戶手冊:硬件

    RA2L1數(shù)據(jù)

    RA2L1數(shù)據(jù)
    發(fā)表于 01-09 19:06 ?0次下載
    <b class='flag-5'>RA2L1</b> 組<b class='flag-5'>數(shù)據(jù)</b>表

    RA2L1 組電容式觸控評估系統(tǒng)快速入門指南

    RA2L1 組電容式觸控評估系統(tǒng)快速入門指南
    發(fā)表于 02-03 19:24 ?0次下載
    <b class='flag-5'>RA2L1</b> 組電容式觸控評估系統(tǒng)快速入門指南

    RA2L1 組用戶手冊:硬件

    RA2L1 組用戶手冊:硬件
    發(fā)表于 06-30 18:50 ?1次下載
    <b class='flag-5'>RA2L1</b> 組用戶手冊:硬件

    RA2L1數(shù)據(jù)

    RA2L1數(shù)據(jù)
    發(fā)表于 06-30 18:50 ?2次下載
    <b class='flag-5'>RA2L1</b> 組<b class='flag-5'>數(shù)據(jù)</b>表

    RA2L1 組 Capacitive Touch Evaluation System 用戶手冊

    RA2L1 組 Capacitive Touch Evaluation System 用戶手冊
    發(fā)表于 07-04 20:38 ?2次下載
    <b class='flag-5'>RA2L1</b> 組 Capacitive Touch Evaluation System 用戶手冊

    RA2L1:使用CLKOUT給MCU CAN模塊提供時鐘

    RA2L1:使用CLKOUT給MCU CAN模塊提供時鐘
    的頭像 發(fā)表于 11-02 16:27 ?790次閱讀
    <b class='flag-5'>RA2L1</b>:使用CLKOUT給MCU CAN模塊提供時鐘

    基于RA2L1串口及J-Link的燒寫說明

    基于RA2L1串口及J-Link的燒寫說明
    的頭像 發(fā)表于 08-19 08:08 ?657次閱讀
    基于<b class='flag-5'>RA2L1</b>的<b class='flag-5'>串口</b>及J-Link的燒寫說明

    基于RA2L1實現(xiàn)串口DTC數(shù)據(jù)接收

    基于RA2L1實現(xiàn)串口DTC數(shù)據(jù)接收
    的頭像 發(fā)表于 10-10 09:34 ?598次閱讀
    基于<b class='flag-5'>RA2L1</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>串口</b><b class='flag-5'>DTC</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>接收</b>

    瑞薩RA2L1系列CAN通信應用

    瑞薩RA2L1系列CAN通信應用
    的頭像 發(fā)表于 06-26 08:06 ?707次閱讀
    瑞薩<b class='flag-5'>RA2L1</b>系列CAN通信應用
    环澳娱乐| 百家乐官网纯数字玩法| 百家乐官网全程打庄| 百家乐官网能破解| 百家乐投注怎么样| 全讯网论坛| 自贡百家乐赌场娱乐网规则| bet365手机版| 金博士百家乐官网娱乐城| 百家乐如何看面| 百家乐光纤冼牌机| 改则县| 百家乐官网长t恤| KK百家乐娱乐城| 天长市| 做生意的十大风水禁忌| 威尼斯人娱乐平台赌| 三明市| 百家乐最好的玩法| 星空棋牌下载| 百家乐官网博娱乐网赌百家乐官网| 正品百家乐电话| 永仁县| 网上百家乐真的假的| 至棒娱乐备用| 玩百家乐官网游戏经验| 赌博百家乐经验| 大渡口区| 百家乐投注科学公式| 金沙国际娱乐| 百家乐官网试玩| bet365提款| 深圳百家乐官网的玩法技巧和规则| 大发888娱乐城dknmwd| 百家乐官网信息| 百家乐网站| 澳门百家乐官网破解| 最佳场百家乐的玩法技巧和规则| 百家乐官网也能赢钱么| 百家乐博娱乐网赌百家乐| 赌百家乐官网波音备用网|