欢迎光临散文网 会员登陆 & 注册

瑞萨e2studio(9)----USRT通过定时器中断方式接收不定长数据

2022-10-26 15:33 作者:记帖  | 我要投稿


概述

本篇文章主要介绍如何使用e2studio对瑞萨单片机进行USRT通过定时器中断方式接收不定长数据。
需要样片的可以加qun申请:6_15061293 。

视频教学

听不到声音的请点击跳转进行观看。

csdn课程

csdn课程更加详细。
https://edu.csdn.net/course/detail/36131

完整代码下载

https://download.csdn.net/download/qq_24312945/84995168

硬件准备

首先需要准备一个开发板,这里我准备的是芯片型号R7FAM2AD3CFP的开发板:

在这里插入图片描述

开发板

在这里插入图片描述

新建工程

在这里插入图片描述

工程模板

在这里插入图片描述

保存工程路径

在这里插入图片描述

芯片配置

本文中使用R7FA4M2AD3CFP来进行演示。

在这里插入图片描述

工程模板选择

在这里插入图片描述

时钟设置

开发板上的外部高速晶振为12M,需要修改XTAL为12M.

在这里插入图片描述

UART配置

点击Stacks->New Stack->Driver->Connectivity -> UART Driver on r_sci_uart。

在这里插入图片描述

UART属性配置

由于开发板的typc-c接口所接的是串口9,故配置为通道9。

在这里插入图片描述

回调函数user_uart_callback ()

发送完毕可以用UART_EVENT_TX_COMPLETE进行判断。

在这里插入图片描述


设置e2studio堆栈

在这里插入图片描述

e2studio的重定向printf设置

在这里插入图片描述


C++ 构建->设置->GNU ARM Cross C Linker->Miscellaneous去掉Other linker flags中的 “--specs=rdimon.specs”


在这里插入图片描述

printf输出重定向到串口

打印最常用的方法是printf,所以要解决的问题是将printf的输出重定向到串口,然后通过串口将数据发送出去。
注意一定要加上头文件#include <stdio.h>

回调函数user_uart_callback ()

设置接受到0xff则输出已经输入的数据。
若接收到新的数据,使用R_GPT_Reset进行充值定时器计数。

printf_usart打印函数

打印已经接受的数据以及其长度。

定时器设置

点击Stacks->New Stack->Driver->Timers -> Timers Driver on r_gpt。

在这里插入图片描述


设置500ms无输入则输出已经输入的数据。
频率=时钟源/period,若设置计数时间为500ms一次,频率为2Hz,则period=50M/2=25000000

在这里插入图片描述

定时器回调函数timer0_callback()

完整代码


在这里插入图片描述

发送数据,延时500ms后打印

在这里插入图片描述

最后

以上的代码会在Q_QUN里分享。Q_QUN:6_15061293。
或者关注『记帖』,持续更新文章和学习资料!

请添加图片描述


瑞萨e2studio(9)----USRT通过定时器中断方式接收不定长数据的评论 (共 条)

分享到微博请遵守国家法律