0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

投稿 | 基于IAR搭建RA MCU 串口打印

RA生态工作室 2022-11-04 10:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

RA MCU 生态工作室致力于构建一个完善的 RA 生态,这将会是一个好玩有趣的开放社区,也提供各种RA相关问题的解决方法。

1.概述

通过RASC创建一个串口工程,具体配置如下,用户可以根据自己定义来配置串口相关的基本参数。

2.创建工程

STEP1:RASC创建工程

8f3f6564-0f69-11ed-9ade-dac502259ad0.png

STEP2:选芯片型号跟IDE类型

8f685ae6-0f69-11ed-9ade-dac502259ad0.png

STEP3:选择芯片型号

8f9c5a94-0f69-11ed-9ade-dac502259ad0.png

STEP4:选择无操作系统

8faf3448-0f69-11ed-9ade-dac502259ad0.png

STEP5:勾选确认工程

8fd5577c-0f69-11ed-9ade-dac502259ad0.png

STEP6:配置串口号跟IO口

8ffb7cfe-0f69-11ed-9ade-dac502259ad0.png

STEP7:添加串口驱动

90320f1c-0f69-11ed-9ade-dac502259ad0.png

STEP8:配置串口

9059af72-0f69-11ed-9ade-dac502259ad0.png

STEP9:配置串口基本属性

90820bf2-0f69-11ed-9ade-dac502259ad0.png

STEP10:生成工程

90a1db08-0f69-11ed-9ade-dac502259ad0.png


3.代码

STEP11:打开工程

90c73786-0f69-11ed-9ade-dac502259ad0.png

STEP12:添加代码

90eb6e12-0f69-11ed-9ade-dac502259ad0.png

STEP13:具体代码如下


void hal_entry( void )
{
    /* TODO: add your own code here */
    fsp_err_t err = R_SCI_UART_Open( &g_uart9_ctrl, &g_uart9_cfg );
    assert( FSP_SUCCESS == err );
    while ( true )
    {
        printf( "Hello RA MCU \r\n" );
    }
#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}

STEP14:添加头文件跟串口回调函数

912513b0-0f69-11ed-9ade-dac502259ad0.png

STEP15:具体代码如下


#include "hal_data.h"
#include "stdio.h"
FSP_CPP_HEADER
void R_BSP_WarmStart( bsp_warm_start_event_t event );
FSP_CPP_FOOTER
uint8_t g_transfer_complete = 0;
void g_uart9_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:
        {
            g_transfer_complete = 1;
            break;
        }
        default:
        {
        }
    }
}

STEP16:添加打印接口重定向代码,具体如下

/*******************
 *
 * Copyright 1998-2017 IAR Systems AB.
 *
 * This is a template implementation of the "__write" function used by
 * the standard library.  Replace it with a system-specific
 * implementation.
 *
 * The "__write" function should output "size" number of bytes from
 * "buffer" in some application-specific way.  It should return the
 * number of characters written, or _LLIO_ERROR on failure.
 *
 * If "buffer" is zero then __write should perform flushing of
 * internal buffers, if any.  In this case "handle" can be -1 to
 * indicate that all handles should be flushed.
 *
 * The template implementation below assumes that the application
 * provides the function "MyLowLevelPutchar".  It should return the
 * character written, or -1 on failure.
 *
 ********************/

#include 

#pragma module_name = "?__write"

int MyLowLevelPutchar(int x)
{
  R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)&x, 1);
  while(g_transfer_complete == 0); 
  g_transfer_complete = 0;
  return x;
 
}

/*
 * If the __write implementation uses internal buffering, uncomment
 * the following line to ensure that we are called with "buffer" as 0
 * (i.e. flush) when the application terminates.
 */

size_t __write(int handle, const unsigned char * buffer, size_t size)
{
  /* Remove the #if #endif pair to enable the implementation */
#if 1

  size_t nChars = 0;

  if (buffer == 0)
  {
    /*
     * This means that we should flush internal buffers.  Since we
     * don't we just return.  (Remember, "handle" == -1 means that all
     * handles should be flushed.)
     */
    return 0;
  }

  /* This template only writes to "standard out" and "standard err",
   * for all other file handles it returns failure. */
  if (handle != _LLIO_STDOUT && handle != _LLIO_STDERR)
  {
    return _LLIO_ERROR;
  }

  for (/* Empty */; size != 0; --size)
  {
    if (MyLowLevelPutchar(*buffer++) < 0)
    {
      return _LLIO_ERROR;
    }

    ++nChars;
  }

  return nChars;

#else

  /* Always return error code when implementation is disabled. */
  return _LLIO_ERROR;

#endif

}


4.工程配置

STEP17:工程配置

91445072-0f69-11ed-9ade-dac502259ad0.png

STEP18:弹出如下窗口

918e44a2-0f69-11ed-9ade-dac502259ad0.png


5.结果

STEP19:接上串口工具,打印如下

91b4ebfc-0f69-11ed-9ade-dac502259ad0.png


投稿:欣瑞利科技@Moxair

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

    关注

    147

    文章

    19232

    浏览量

    405177
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于瑞萨FPB-RA0E2开发板实现UART串口打印HELLO WORLD

    本篇文章主要介绍如何使用e2 studio灵活软件包(FSP)对瑞萨FPB-RA0E2单片机开发板进行UART串口打印HELLO WORLD。
    的头像 发表于 05-19 11:19 3150次阅读
    基于瑞萨FPB-<b class='flag-5'>RA</b>0E2开发板实现UART<b class='flag-5'>串口</b><b class='flag-5'>打印</b>HELLO WORLD

    RA-Eco-RA4M2开发板评测】+ 开发板开箱及开发环境搭建

    RA-Eco-RA4M2开发板评测】 环境搭建
    的头像 发表于 05-09 10:04 399次阅读
    【<b class='flag-5'>RA-Eco-RA</b>4M2开发板评测】+ 开发板开箱及开发环境<b class='flag-5'>搭建</b>

    瑞萨RA MCU众测宝典 | 串口之【RA-Eco-RA2L1】RTC日历及串口设置时间

    瑞萨“RAMCU众测宝典”串口专题添硬核实操!开启宝典前言RAMCU众测宝典|串口之【RA2L1】开发板开箱及串口输出实现RAMCU众测宝典|PWM之【
    的头像 发表于 04-21 18:07 7234次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | <b class='flag-5'>串口</b>之【<b class='flag-5'>RA-Eco-RA</b>2L1】RTC日历及<b class='flag-5'>串口</b>设置时间

    瑞萨RA MCU众测宝典 | 环境搭建之【RA-Eco-RA4M2】QE工具使用

    瑞萨“RAMCU众测宝典”环境搭建专题再添硬核实操!开启宝典01简介RA-Eco-RA4M2-100PIN-V1.0是一款基于100MHzArmCortex-M33内核架构的核心板,主控芯片为
    的头像 发表于 04-10 18:26 6170次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | 环境<b class='flag-5'>搭建</b>之【<b class='flag-5'>RA-Eco-RA</b>4M2】QE工具使用

    瑞萨RA MCU众测宝典 | 环境搭建之【RA-Eco-RA4M2】搭建Keil开发环境

    瑞萨“RAMCU众测宝典”环境搭建专题再添硬核实操!开启宝典概览瑞萨电子RA4M232位微控制器(MCU)系列使用支持TrustZone的高性能ArmCortex-M33内核。与片内
    的头像 发表于 04-03 17:59 7290次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | 环境<b class='flag-5'>搭建</b>之【<b class='flag-5'>RA-Eco-RA</b>4M2】<b class='flag-5'>搭建</b>Keil开发环境

    瑞萨RA MCU众测宝典 | 环境搭建之【RA-Eco-RA6E2-64PIN-V1.0 开发板】介绍、环境搭建、工程测试

    “RAMCU众测宝典”环境搭建专题再添实用干货!这次咱们聚焦高性能入门级开发板——【RA-Eco-RA6E2-64PIN-V1.0】。本文介绍了RA-Eco-RA6E2-64PIN-V1.0开发板
    的头像 发表于 03-20 16:23 8079次阅读
    瑞萨<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | 环境<b class='flag-5'>搭建</b>之【<b class='flag-5'>RA-Eco-RA</b>6E2-64PIN-V1.0 开发板】介绍、环境<b class='flag-5'>搭建</b>、工程测试

    RA MCU众测宝典 | 环境搭建之【FPB-RA0E2】开发环境搭建

    RA生态工作室关注我们“RAMCU众测宝典”环境搭建专题更新啦!这次我们聚焦【FPB-RA0E2】开发板,一步步打通开发“第一关”,为后续功能开发筑牢基础。开启宝典1.FPB-RA0E
    的头像 发表于 03-11 16:33 1670次阅读
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | 环境<b class='flag-5'>搭建</b>之【FPB-<b class='flag-5'>RA</b>0E2】开发环境<b class='flag-5'>搭建</b>

    RA-Eco-RA2E1-V1.0开发板试用】串口打印例程。

    本实验基于瑞萨 RA 系列单片机完成UART 串口通信与printf 重定向功能实现,通过配置串口引脚、初始化驱动、编写发送回调函数,实现了开发板与上位机之间的数据收发,并可直接使用printf
    的头像 发表于 02-24 16:33 515次阅读
    【<b class='flag-5'>RA-Eco-RA</b>2E1-V1.0开发板试用】<b class='flag-5'>串口</b><b class='flag-5'>打印</b>例程。

    瑞萨RA-Eco-RA4M2开发板基本模板搭建与LED指南

    瑞萨“RA MCU众测宝典”环境搭建专题再添硬核实操!这次将解锁“基本模板搭建与LED”技能,加入简易调度器实现多任务管理,一步步搞定“能直接落地”的开发模板,不管是入门练手还是项目开
    的头像 发表于 02-24 14:43 7445次阅读
    瑞萨<b class='flag-5'>RA-Eco-RA</b>4M2开发板基本模板<b class='flag-5'>搭建</b>与LED指南

    【CPKCOR-RA8D1】基础串口打印测试

    本文将演示如何为瑞萨CPKCOR-RA8D1开发板配置串口功能,并实现最简单的“Hello World”数据打印串口是嵌入式开发中最常用、最重要的调试手段,此测试是后续所有开发的基础
    发表于 10-30 15:23

    【CPKCOR-RA8D1】+ 基础串口打印测试

    本文将演示如何为瑞萨CPKCOR-RA8D1开发板配置串口功能,并实现最简单的“Hello World”数据打印串口是嵌入式开发中最常用、最重要的调试手段,此测试是后续所有开发的基础
    发表于 10-30 09:40

    瑞萨RA2L1 MCU e² studio和FSP的使用指南

    本期“RA MCU众测宝典” 继续聚焦 “环境搭建” 专题,带大家走进【RA-Eco-RA2L1-48PIN-V1.0】的世界,查看e² studio和FSP的下载、安装及使用指南从零
    的头像 发表于 08-04 13:45 3344次阅读
    瑞萨<b class='flag-5'>RA</b>2L1 <b class='flag-5'>MCU</b> e² studio和FSP的使用指南

    RA-Eco-RA6M4开发板评测】1、开发环境搭建串口打印信息

    setup_fsp_v6.0.0_rasc_v2025-04.exe用于生成RA芯片的工程和外设配置,下载和安装MDK_Device_Packs_v6.0.0.zip用于Keil开发。 USART串口打印
    发表于 07-22 22:45

    RA-Eco-RA6M4开发板评测】——2.串口打印

    上次讲了LED点亮流水灯,这次来讲解串口打印,首先打开原理图 由图可知,用到的串口是109和110 打开LED工程,直接在上面添加串口功能 生成代码 打开KEIL 先编译一遍 发现错
    发表于 07-16 13:20

    RA4L1-SENSOR】+ RA4L1-SENSOR开发版之使用Jlink的RTT打印功能代替串口

    上一篇帖子中我已经实现了板子上的串口USART9进行输出打印,这篇帖子我采用另外一种串口打印来实现,这是瑞萨官网实现的最主要打印调试手段,那
    发表于 06-09 09:03