瑞萨RA8系列教程 | 基于e2s实现RA8串口输出配置

关注+星标公众,不错过精彩内容

9390ad59abef2107888a2355b81b3abe.gif

作者 | strongerHuang

微信公众号 | strongerHuang

串口是最常见的通信方式之一,也是单片机调试最常见的通信接口,也是现在的单片机必备的通信接口,目前(2024-05)最新、最强的Cortext-M85内核的RA8系列单片机也不例外。

今天就结合瑞萨Cortext-M85内核RA8系列单片机给大家讲讲串口输出实现的方法,简单到只需要一分钟左右即可配置好。

准备工作

要快速使用瑞萨Cortext-M85内核RA8系列单片机,需要有一些准备工作。

1、下载安装集成开发环境

瑞萨单片机的集成开发工具(IDE)有很多,比如:瑞萨自家的e2s、Keil、 IAR等。

这里大家可以参看我之前分享的文章:

瑞萨RA8系列教程 | 瑞萨 RA8 开发环境e2s搭建

Keil系列教程_Keil介绍、下载、安装与注册

2、准备硬件板卡

虽然现在仿真工具都可以实现单片机的要一些功能,但我们最好还是在硬件实物上跑程序更能学会技术。

本教程就使用瑞萨CPKCOR_RA8D1B评估板,这块板卡使用RA8D1单片机,并集成了J-link,我们只需要用一根线连接电脑即可下载调试。

当然,如果你板卡没有集成J-Link,就需要单独准备一个。

以上就是主要的准备工作,其实也挺简单,入门都要准备的工作。

一分钟上手Cortext-M85单片机串口

e2s集成了很多功能,我们只需要动动鼠标就能快速创建并生成一个工程。

1、基于e2s快速创建一个工程

打开e2s,文件 -> 新建 -> 瑞萨C/C++项目 -> Renesas RA:

59964b250752b6e4a5433802354b2eba.png

92aa1d38206ef2259255c1c7bde41aed.png

输入工程名称,比如我们输入RA8D1_UART:

916dff841e1e1fed0ac1b83fc6fa9bfa.png

选择单片机型号,比如R7FA8D1BHEC:

955f119d6eb6fff45b6afcdc02600e89.png

然后,根据提示,一步一步下去,就可以创建一个RA8工程:

1deb089dd5e62868b315f752487cbb46.png

0cc4572dbe6f208b35faf9820c82a845.png

6e97a6a122e6a0e9e2f3c32ad5e92aab.png

2、配置串口

这里只需要根据图形化界面,简单配置一下串口即可使用串口。

我们在引脚(Pins)的位置,选择外设(Peripherals)-> SLI4,配置成异步通信模式:

3702a2f258b64701b83dbd1621f3595b.png

在 Stacts -> New Stacts,新建一个UART:

35d7d03414b1e3c6e384354a9ff09a07.png

然后,在配置一下UART参数(属性):

7752b8f0a1848aa178d38f536d9c17c2.png

这里根据自己情况修改几个主要参数,其他大多数默认即可,如果需要中断,就需要自己定义一个中断回调函数:

12e924938b37fc0c0a0cd74d97cfd12b.png

如果要使用printf就还需要配置两个地方,1、heap栈大小;2、工程设置。

2cca24cef9c978b11cb9853a6e03455c.png

66eb64b58209e74b1b7964f94eaa87a2.png

接下来就是添加代码了,我们添加两个源文件:bsp_debug_uart.h和bsp_debug_uart.c

其中bsp_debug_uart.h就是包含头文件,以及声明函数。

#ifndef __BSP_DEBUG_UART_H
#define  __BSP_DEBUG_UART_H
#include "hal_data.h"
#include <stdio.h>void Debug_UART4_Init(void);#endif

其中bsp_debug_uart.c源文件也比较简单:

#include "bsp_debug_uart.h"/* 调试串口 UART4 初始化 */
void Debug_UART4_Init(void)
{fsp_err_t err = FSP_SUCCESS;err = R_SCI_B_UART_Open(&g_uart4_ctrl, &g_uart4_cfg);assert(FSP_SUCCESS == err);
}/* 发送完成标志 */
volatile bool uart_send_complete_flag = false;/* 串口中断回调 */
void debug_uart4_callback (uart_callback_args_t * p_args)
{switch (p_args->event){case UART_EVENT_RX_CHAR:{/* 把串口接收到的数据发送回去 */R_SCI_B_UART_Write(&g_uart4_ctrl, (uint8_t *)&(p_args->data), 1);break;}case UART_EVENT_TX_COMPLETE:{uart_send_complete_flag = true;break;}default:break;}
}/* 重定向 printf 输出 */
#if defined __GNUC__ && !defined __clang__
int _write(int fd, char *pBuffer, int size); //防止编译警告
int _write(int fd, char *pBuffer, int size)
{(void)fd;R_SCI_B_UART_Write(&g_uart4_ctrl, (uint8_t *)pBuffer, (uint32_t)size);while(uart_send_complete_flag == false);uart_send_complete_flag = false;return size;
}
#else
int fputc(int ch, FILE *f)
{(void)f;R_SCI_B_UART_Write(&g_uart4_ctrl, (uint8_t *)&ch, 1);while(uart_send_complete_flag == false);uart_send_complete_flag = false;return ch;
}
#endif

这样下来就算完成了,你往单片机发送什么字符,它就会给你发回来,比如:往里面发字符“A”

24a8e7dc8c6b17f37894ca2f67c1f6cc.png

到这里就完成了一个RA8单片机串口的配置,是不是很简单?对于有一定基础的朋友,基本上一分钟就能搞定。

------------ END ------------

eb3f5d46ff1af23f96d82ea5e7c55df9.gif

●瑞萨RA8系列教程 | 初识瑞萨 RA8 系列单片机

●瑞萨RA8系列教程 | 瑞萨 RA8 开发环境搭建

●瑞萨RA8系列教程 | 基于 Keil 开发 RA8单片机

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

9248db6e4fdda7ea501533c2ea5af54c.png

点击“阅读原文”查看更多分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【香橙派AIpro】开箱测评

1.板子开箱 哟&#xff0c;看起来还不错哦&#xff01;&#xff01;&#xff01; 收货清单&#xff1a; 主板*1 1.5m数据线*1 充电头*1 1.1.充电头 近65W的充电头&#xff0c;不错不错。 1.2.主板 1.2.1.上面 哇噢&#xff0c;还送了2.4/5G的WiFi和蓝牙天线。 emm&#xf…

卷出新高度,直呼太强!时隔三月,YOLO再度进化升级:《YOLOv10—实时端到端目标检测》重磅来袭

真的是不止一次感叹&#xff0c;学习的速度都跟不上发论文出新品的速度。。。。。 继前文YOLOv9发布以来也就不到三个月的时间&#xff0c;YOLOv10就来了&#xff01; 《太卷了&#xff0c;目标检测新成员——YOLOv9: Learning What You Want to LearnUsing Programmable Gra…

吴恩达2022机器学习专项课程C2W2:2.22 多类 softmax softmax与神经网络 softmax的代码改良 多标签分类

目录 多分类问题1.什么是多分类问题2.多分类问题案例3.二分类与多分类的区别 Softmax1. 什么是Softmax2.逻辑回归预测的计算过程3. Softmax预测的计算过程4.Softmax 回归与逻辑回归的关系5. Softmax的损失函数 softmax与神经网络1.设置Softmax层2.Softmax层的计算3.softmax激活…

卸载/删除 Maxask.com,最简单的方法

被绑架的浏览器&#xff0c;太恶心了。 Maxask伪装成了插件&#xff0c;在你搜索网页的时候利用了重定向&#xff0c;导致出现的界面时Maxask的界面&#xff0c;很恶心。 只需要排查正在使用的&#xff0c;如下图有颜色的图表。 删除一个插件&#xff0c;浏览器搜索一下看看有…

先进制造aps专题九 中国aps行业分析

国外aps的问题是不给国内客户定制算法 国外aps的算法都很强大&#xff0c;考虑几百个约束条件&#xff0c;各种复杂的工序关系&#xff0c;还有副资源约束特殊规格约束&#xff0c;排程还优化&#xff0c;光c写的算法代码就几十万行甚至上百万行 国内aps的问题是实现不了复杂的…

项目范围管理

目录 1.概述 2.主要工作 3.基础 4.项目范围管理的过程 5.规划范围管理 6.收集需求 7.定义范围 8.创建 WBS 9.确认范围 10.控制范围 1.概述 项目范围管理是项目管理中的一个重要组成部分&#xff0c;涉及到确定项目需要完成的工作范围&#xff0c;以及如何管理和控制…

String到底创建几个对象?

String在生成的过程中如何创建对象&#xff1f; String s1 new String("hello") String s2 "world" String s3 new String("x") new String("y") String s5 new String("abc") "def" String s6 new String…

mysql数据库安装指南

这里写自定义目录标题 官网下载mysql数据库安装MySQL数据库添加环境变量查看mysql的服务验证是否配置成功 注意&#xff1a;如果用MySQL8的版本安装不成功&#xff0c;可以尝试用MySQL5的版本。MySQL8的版本可能在windows上一直不能启动&#xff0c;经过查询是某个版本的漏洞。…

分布式系列之分布式锁

背景 SOA或微服务架构体系下必不可少的一个分布式组件&#xff0c;常用于解决分布式场景下数据一致性的问题。 应用场景&#xff1a; 资源竞争控制&#xff1a;在分布式系统中&#xff0c;多个节点可能同时访问共享资源&#xff0c;如数据库、文件系统、缓存等。分布式锁可以…

如何在 jQuery 中检查一个元素是否隐藏

在前端开发中&#xff0c;我们常常需要判断一个元素是否隐藏。在 jQuery 中&#xff0c;有多种方式可以实现这一点。然而&#xff0c;并不是所有的解决方案都适用于所有情况。为此&#xff0c;我写了一个通用的解决方案来应对各种复杂情形。本文将详细介绍这个方法及其使用方式…

知识存储概述

文章目录 知识存储概述知识存储方式知识存储基础工具技术发展趋势 知识存储是针对知识图谱的知识表示形式设计底层存储方式&#xff0c;完成各类知识的存储&#xff0c;以支持对大规模图数据的有效管理和计算。知识存储的对象包括基本属性知识、关联知识、事件知识、时序知识和…

操作系统 实验17 批处理操作接口7:until循环与select循环

1、建立文件Until.sh实现累加和 脚本&#xff1a; #!/bin/bash sum010 sum020 i1 until [ $i -gt 100 ] dolet "sum01i"let "ji%2"if [ $j -ne 0 ];thenlet "sum02i"filet "i1" done echo $sum01 echo $sum02命令&#xff1a;. ./Un…

深入解析 RocketMQ 和 Kafka 的消息压缩机制

深入解析 RocketMQ 和 Kafka 的消息压缩机制 消息队列系统在现代分布式系统中扮演着重要角色&#xff0c;它们不仅需要高效地传递消息&#xff0c;还需要在传输过程中尽量减少带宽和存储的占用。消息压缩是一种常见的优化手段&#xff0c;可以显著减少消息的体积。本文将详细探…

Spring Security:认证与授权

Spring Security&#xff1a;认证与授权 在这篇文章中&#xff0c;你将学到与Spring Security相关的五个关键概念和术语&#xff0c;这些是你真正需要了解的。当你学习Spring Security时&#xff0c;你会一次又一次地遇到这些核心术语和概念。因此&#xff0c;在这篇文章中&am…

深入Docker in Docker:原理解析与实战演练

Docker in Docker&#xff08;简称DinD&#xff09;是一个在Docker容器内部运行另一个Docker守护进程和客户端的技术。这允许在一个容器中执行Docker命令&#xff0c;就像在宿主机上一样。这种技术在某些用例中非常有用&#xff0c;比如CI/CD管道、测试环境或者某些需要隔离的环…

linux网卡MAC地址

1、ifconfig命令查看网卡MAC地址 1.1 通过HWaddr或ether字段过滤mac地址 ifconfig | grep HWaddr ifconfig | grep ether [rootlocalhost ~]# /sbin/ifconfig | grep ether 注&#xff1a;有些Linux发行版本的MAC地址字段为HWaddr&#xff0c;有些Linux发行版本的MAC地址字段…

智能未来,触手可及,畅享移动云

目录 一、简介 二、移动云强大优势 1. 强大的网络基础设施 2. 可靠服务 3. 丰富产品线 4. 技术应用 5. 优惠价格策略 三、多商对比 网络优势 四、移动云的未来发展 五、实战应用 5.1 服务器选购 ​编辑5.2 服务器启动 5.3 实例操作 六、移动云的服务优势 6.1 客…

postman教程-5-发送put请求

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了postman发送post请求的方法&#xff0c;本小节我们讲解一下postman发送put请求的方法。 HTTP PUT 请求是一种用于传输数据的网络协议方法&#xff0c;它在客户端和服务器之间的通信中扮演着重…

数据中心、HPC、AI等应用场景互联协议混战哪家强?

生成式人工智能快速发展对算力与存力呈指数需求增长&#xff0c;进一步加剧了算力与存力之间既有矛盾&#xff0c;时代在呼唤更大的运力&#xff08;即计算与存储之间的数据传输&#xff09;--AIGC时代需要更大带宽&#xff0c;更为快速的数据传输路径。 众所周知&#xff0c;P…

香橙派AIpro初体验,详解如何安装Home Assistant Supervised

香橙派AIpro&#xff08;OrangePi AIpro&#xff09;开发版&#xff0c;定位是一块AI开发板&#xff0c;搭载的是华为昇腾310&#xff08;Ascend310&#xff09;处理器。 没想到&#xff0c;这几年的发展&#xff0c;AI开发板也逐渐铺开&#xff0c;记得之前看到华为发布昇腾3…