瑞萨e2studio(16)----基于DTC的多通道ADC采集
瑞萨e2studio.16--基于DTC的多通道ADC采集
- 概述
- 视频教学
- csdn课程
- 样品申请
- 完整代码下载
- 硬件准备
- 开发板
- 新建工程
- 工程模板
- 保存工程路径
- 芯片配置
- 工程模板选择
- uart配置
- uart属性配置
- 回调函数user_uart_callback ()
- 设置e2studio堆栈
- e2studio的重定向printf设置
- e2studio的重定向printf设置
- printf输出重定向到串口
- ADC配置
- ADC属性配置
- DTC配置
- DTC属性配置
- R_DTC_Open()函数原型
- R_DTC_Enable()函数原型
- R_DTC_Reset()函数原型
- 打印数据
- 最后
- 多通道ADC采集通过DTC传输例程
- 结果演示
概述
本篇文章主要介绍如何使用e2studio对瑞萨进行DTC配置,并且对多通道ADC进行采集。
需要样片的可以加Q_QUN申请:6_15061293。
视频教学
听不到声音的请点击跳转进行观看。
https://www.bilibili.com/video/BV1cW4y1J783/
瑞萨e2studio(17)----基于DTC的多通道ADC采集
csdn课程
csdn课程更加详细。
https://edu.csdn.net/course/detail/36131
样品申请
https://www.wjx.top/vm/wBbmSFp.aspx#
完整代码下载
https://download.csdn.net/download/qq_24312945/87371587
硬件准备
硬件准备:这里我准备的是芯片型号R7FA4M2AD3CFP的开发板。
开发板
新建工程
工程模板
保存工程路径
芯片配置
本文中使用R7FA4M2AD3CFP来进行演示。
工程模板选择
uart配置
点击Stacks->New Stack->Driver->Connectivity -> UART Driver on r_sci_uart。
uart属性配置
回调函数user_uart_callback ()
发送完毕可以用UART_EVENT_TX_COMPLETE进行判断。
volatile bool uart_send_complete_flag = false;
void user_uart_callback (uart_callback_args_t * p_args)
{if(p_args->event == UART_EVENT_TX_COMPLETE){uart_send_complete_flag = true;}
}
设置e2studio堆栈
e2studio的重定向printf设置
e2studio的重定向printf设置
C++ 构建->设置->GNU ARM Cross C Linker->Miscellaneous去掉Other linker flags中的 “–specs=rdimon.specs”
printf输出重定向到串口
打印最常用的方法是printf,所以要解决的问题是将printf的输出重定向到串口,然后通过串口将数据发送出去。
注意一定要加上头文件#include <stdio.h>
#ifdef __GNUC__//串口重定向#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endifPUTCHAR_PROTOTYPE
{err = R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)&ch, 1);if(FSP_SUCCESS != err) __BKPT();while(uart_send_complete_flag == false){}uart_send_complete_flag = false;return ch;
}
int _write(int fd,char *pBuffer,int size)
{for(int i=0;i<size;i++){__io_putchar(*pBuffer++);}return size;
}
ADC配置
点击Stacks->New Stack->Driver->Analog -> ADC Driver on r_adc。
ADC属性配置
DTC配置
RA mcu上DTC外设的驱动程序。这个模块实现传输接口。
数据传输控制器(DTC)将数据从一个内存位置传输到另一个内存位置,而不使用CPU。
DTC使用基于RAM的向量表。向量表中的每个条目对应于ISR向量表中的一个条目。当DTC被中断触发时,它读取DTC向量表,获取传输信息,然后执行传输。传输执行后,DTC将更新的传输信息写回DTC向量表所指向的位置。
点击Stacks->Transfer->Transfer(r_dtc)。
DTC属性配置
R_DTC_Open()函数原型
故可以用 R_DTC_Open () 函数进行配置,开启DTC和初始化配置。
// Source is first ADC result registerg_transfer0_cfg.p_info->p_src = (void*)&R_ADC0->ADDR[0];// Destination is results bufferg_transfer0_cfg.p_info->p_dest = &adc_result_buffer[0];/* Open the transfer instance with initial configuration. */err = R_DTC_Open(&g_transfer0_ctrl, &g_transfer0_cfg);/* Handle any errors. This function should be defined by the user. */assert(FSP_SUCCESS == err);
R_DTC_Enable()函数原型
在这个激活源上启用DTC传输。
/* Enable the DTC to handle incoming transfer requests. */err = R_DTC_Enable(&g_transfer0_ctrl);assert(FSP_SUCCESS == err);
R_DTC_Reset()函数原型
重置传输源、目的地和传输数。
/* Callback function */
void adc_callback(adc_callback_args_t *p_args)
{/* TODO: add your own code here */if( p_args->event == ADC_EVENT_SCAN_COMPLETE ){err = R_DTC_Reset( &g_transfer0_ctrl,(void*)&R_ADC0->ADDR[0], // reset source address&adc_result_buffer[0], // reset destination address1 ); // reset block sizeif( FSP_SUCCESS != err ){__BKPT(1);}}
}
打印数据
while(1){/* In software trigger mode, start a scan by calling R_ADC_ScanStart(). In other modes, enable external* triggers by calling R_ADC_ScanStart(). */err = R_ADC_ScanStart(&g_adc0_ctrl);assert(FSP_SUCCESS == err);printf("adc[0]_v=%f\n",(float)adc_result_buffer[0]/4095*3.3);printf("adc[1]_v=%f\n",(float)adc_result_buffer[1]/4095*3.3);printf("adc[2]_v=%f\n",(float)adc_result_buffer[3]/4095*3.3);R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); // NOLINT100->160}
最后
以上的代码会在Q_QUN里分享。Q_QUN:615061293。
或者关注『记帖』,持续更新文章和学习资料!
多通道ADC采集通过DTC传输例程
现在设置3个ADC通道的输入电压如下所示。
ADC通道 | 管脚 | 输入电压 |
---|---|---|
AN0 | P000 | GND(0V) |
AN1 | P001 | VCC(3.3V) |
AN3 | P003 | 1.5V |
结果演示
通过串口打印出的数据如下所示。
瑞萨e2studio(16)----基于DTC的多通道ADC采集相关推荐
- 基于STM32F4:多通道ADC采集,采用DMA的形式,亲测有效
基于STM32F4的多通道ADC采集 单片机源程序如下: #include "sys.h" #include "delay.h" #include " ...
- STM32F4基于DMA的多通道ADC采集——遇到的问题解决
这几天在尝试用DMA实现规则通道多通道的ADC采集,遇到了不少问题,在这记录一下我遇到的问题,一方面理顺一下思路,也希望后人少走弯路. 一开始按照开发板资料中的程序源码编写,但无论如何配置,也无法实现 ...
- 瑞萨e2studio(15)----外部中断定时器配置输入捕获测量频率
瑞萨e2studio.15--外部中断&定时器配置输入捕获测量频率 概述 视频教学 csdn课程 完整代码下载 样品申请 硬件准备 开发板 新建工程 工程模板 保存工程路径 芯片配置 工程模板 ...
- 瑞萨e2studio(7)----ADC通过单次扫描多通道方式采样
瑞萨e2studio.7--ADC通过单次扫描多通道方式采样 概述 视频教学 csdn课程 样品申请 硬件准备 开发板 新建工程 工程模板 保存工程路径 芯片配置 工程模板选择 时钟设置 UART配置 ...
- 瑞萨e2studio(22)----移植兆易创新SPI Nor Flash之GD25Q64Flash
瑞萨e2studio.22--移植兆易创新SPI Nor Flash之GD25Q64Flash spi概述 视频教学 csdn课程 样品申请 完整代码下载 硬件准备 新建工程 工程模板 保存工程路径 ...
- 瑞萨e2studio(17)----IIC,12864OLED移植
瑞萨e2studio.17--IIC,12864OLED移植 概述 视频教学 csdn课程 样品申请 完整代码下载 硬件准备 新建工程 工程模板 保存工程路径 芯片配置 工程模板选择 时钟配置 IIC ...
- 瑞萨e2studio(1)----瑞萨芯片之搭建FSP环境
瑞萨e2studio.1--瑞萨芯片之搭建FSP环境 视频教学 csdn课程 样品申请 e2studio软件 开发板 最后 视频教学 https://www.bilibili.com/video/BV ...
- 瑞萨e2studio(6)----编译调试
瑞萨e2studio.6----编译调试 概述 视频教学 样品申请 csdn课程 硬件准备 开发板 调试配置 启动栏配置 调试窗口 DEBUG调试按钮 中断点视图 表达式视图 内存视图 反汇编视图 I ...
- 瑞萨e2studio(5)----使用UART串口烧写程序到瑞萨芯片
瑞萨e2studio.5----使用UART串口烧写程序到瑞萨芯片 概述 视频教学 csdn课程 样品申请 硬件准备 软件准备 hex文件准备 UART串口与瑞萨开发板进行接线 烧录 概述 本篇文章主 ...
最新文章
- springBean生命周期----来自spring实战总结
- 信息互通联动防御 亚信安全翻开融合终端安全新篇章
- STM32 UART2程序--端口重映射
- python动态调用自定义模块_python importlib动态导入模块 reload重载模块
- observer 观察者模式
- php 正则匹配 文件,php – 正则表达式匹配.htaccess中的一系列文件类型
- dis的前缀单词有哪些_学好单词得靠词根词缀来帮忙
- hi3559v100的amp双系统初始化
- i78565U和i710510U的区别 i78565U和i710510U参数配置对比哪个好
- 农场渲染文件服务器搭建,在渲染农场部署Maya to Arnold
- 基金从业资格考试总结
- 微信小程序授权之getuserInfo
- 错误: Failed to install 'unknown package' from GitHub: schannel: failed to receive handshake, SSL/TL
- 融合改进天牛须和正余弦的双重搜索优化算法
- OSError: (External) Cublas error, CUBLAS_STATUS_NOT_INITIALIZED. The cuBLAS library was not Initia
- HTML+CSS+JS——动漫风二次元论坛(2页) HTML5网页设计成品_学生DW静态网页设计代做_web课程设计网页制作
- ADODB 入门(推荐)
- hive中的内部表和外部表
- 摄影怎么搞副业好?摄影副业是如何赚钱的呢?
- Linux那些事儿之我是U盘(29)将控制传输进行到底
热门文章
- 手机打开html功能不全,屏幕内容显示不全怎么办?
- Arduino执行http请求GET方式
- Windows10系统最强大版本是哪个
- tgp打开对计算机更改,电脑中TGP如何关闭开机启动_电脑中关闭TGP开机启动的步骤...
- 小时光扫地机器人圆圆_小时光:顾未易取名太奇葩!扫地机圆圆,儿子叫末未,群名更硬核...
- 利用go执行nmap命令
- 可测性专题 ——不和陌生人说话
- python ADB 手机屏幕 控制脚本 刷粉 刷赞 脚本
- 以Echo为例,从锂矿厂到数据矿厂的人工智能产业全景地图是这样的!
- 心里话python_一个老运维的心里话