精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

基于RA2L1實現串口DTC數據接收

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

介紹

開發環境:IAR FOR ARM 9.30.1

RASC V4.3.0

芯片型號:R7FA2L1AB2DFL#AA0

功能描述

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

主要內容

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收發功能

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為例,用戶可以根據實際情況超時時間。

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所需外設都已經配置好,生成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;                //發送標志
  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 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發送完成標志,清接收標志
        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聯動
  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

仿真測試如下圖所示:

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

結論

該方式沒有問題,可以正常應用到開發中。

審核編輯:湯梓紅

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

    關注

    134

    文章

    8964

    瀏覽量

    364974
  • 定時器
    +關注

    關注

    23

    文章

    3218

    瀏覽量

    113663
  • IAR
    IAR
    +關注

    關注

    5

    文章

    339

    瀏覽量

    36494
  • 串口
    +關注

    關注

    14

    文章

    1533

    瀏覽量

    75439
  • 數據接收
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7803

原文標題:基于RA2L1實現串口DTC數據接收

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

收藏 人收藏

    評論

    相關推薦

    瑞薩電子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 ?1405次閱讀

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

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

    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 組用戶手冊:硬件

    RA2L1 組用戶手冊:硬件
    發表于 06-30 18:50 ?0次下載
    <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 ?613次閱讀
    <b class='flag-5'>RA2L1</b>:使用CLKOUT給MCU CAN模塊提供時鐘

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

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

    基于RA2L1實現串口DTC數據接收

    基于RA2L1實現串口DTC數據接收
    的頭像 發表于 10-10 09:34 ?382次閱讀
    基于<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系列CAN通信應用

    瑞薩RA2L1系列CAN通信應用
    的頭像 發表于 06-26 08:06 ?386次閱讀
    瑞薩<b class='flag-5'>RA2L1</b>系列CAN通信應用