瑞萨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采集相关推荐

  1. 基于STM32F4:多通道ADC采集,采用DMA的形式,亲测有效

    基于STM32F4的多通道ADC采集 单片机源程序如下: #include "sys.h" #include "delay.h" #include " ...

  2. STM32F4基于DMA的多通道ADC采集——遇到的问题解决

    这几天在尝试用DMA实现规则通道多通道的ADC采集,遇到了不少问题,在这记录一下我遇到的问题,一方面理顺一下思路,也希望后人少走弯路. 一开始按照开发板资料中的程序源码编写,但无论如何配置,也无法实现 ...

  3. 瑞萨e2studio(15)----外部中断定时器配置输入捕获测量频率

    瑞萨e2studio.15--外部中断&定时器配置输入捕获测量频率 概述 视频教学 csdn课程 完整代码下载 样品申请 硬件准备 开发板 新建工程 工程模板 保存工程路径 芯片配置 工程模板 ...

  4. 瑞萨e2studio(7)----ADC通过单次扫描多通道方式采样

    瑞萨e2studio.7--ADC通过单次扫描多通道方式采样 概述 视频教学 csdn课程 样品申请 硬件准备 开发板 新建工程 工程模板 保存工程路径 芯片配置 工程模板选择 时钟设置 UART配置 ...

  5. 瑞萨e2studio(22)----移植兆易创新SPI Nor Flash之GD25Q64Flash

    瑞萨e2studio.22--移植兆易创新SPI Nor Flash之GD25Q64Flash spi概述 视频教学 csdn课程 样品申请 完整代码下载 硬件准备 新建工程 工程模板 保存工程路径 ...

  6. 瑞萨e2studio(17)----IIC,12864OLED移植

    瑞萨e2studio.17--IIC,12864OLED移植 概述 视频教学 csdn课程 样品申请 完整代码下载 硬件准备 新建工程 工程模板 保存工程路径 芯片配置 工程模板选择 时钟配置 IIC ...

  7. 瑞萨e2studio(1)----瑞萨芯片之搭建FSP环境

    瑞萨e2studio.1--瑞萨芯片之搭建FSP环境 视频教学 csdn课程 样品申请 e2studio软件 开发板 最后 视频教学 https://www.bilibili.com/video/BV ...

  8. 瑞萨e2studio(6)----编译调试

    瑞萨e2studio.6----编译调试 概述 视频教学 样品申请 csdn课程 硬件准备 开发板 调试配置 启动栏配置 调试窗口 DEBUG调试按钮 中断点视图 表达式视图 内存视图 反汇编视图 I ...

  9. 瑞萨e2studio(5)----使用UART串口烧写程序到瑞萨芯片

    瑞萨e2studio.5----使用UART串口烧写程序到瑞萨芯片 概述 视频教学 csdn课程 样品申请 硬件准备 软件准备 hex文件准备 UART串口与瑞萨开发板进行接线 烧录 概述 本篇文章主 ...

最新文章

  1. springBean生命周期----来自spring实战总结
  2. 信息互通联动防御 亚信安全翻开融合终端安全新篇章
  3. STM32 UART2程序--端口重映射
  4. python动态调用自定义模块_python importlib动态导入模块 reload重载模块
  5. observer 观察者模式
  6. php 正则匹配 文件,php – 正则表达式匹配.htaccess中的一系列文件类型
  7. dis的前缀单词有哪些_学好单词得靠词根词缀来帮忙
  8. hi3559v100的amp双系统初始化
  9. i78565U和i710510U的区别 i78565U和i710510U参数配置对比哪个好
  10. 农场渲染文件服务器搭建,在渲染农场部署Maya to Arnold
  11. 基金从业资格考试总结
  12. 微信小程序授权之getuserInfo
  13. 错误: Failed to install 'unknown package' from GitHub: schannel: failed to receive handshake, SSL/TL
  14. 融合改进天牛须和正余弦的双重搜索优化算法
  15. OSError: (External) Cublas error, CUBLAS_STATUS_NOT_INITIALIZED. The cuBLAS library was not Initia
  16. HTML+CSS+JS——动漫风二次元论坛(2页) HTML5网页设计成品_学生DW静态网页设计代做_web课程设计网页制作
  17. ADODB 入门(推荐)
  18. hive中的内部表和外部表
  19. 摄影怎么搞副业好?摄影副业是如何赚钱的呢?
  20. Linux那些事儿之我是U盘(29)将控制传输进行到底

热门文章

  1. 手机打开html功能不全,屏幕内容显示不全怎么办?
  2. Arduino执行http请求GET方式
  3. Windows10系统最强大版本是哪个
  4. tgp打开对计算机更改,电脑中TGP如何关闭开机启动_电脑中关闭TGP开机启动的步骤...
  5. 小时光扫地机器人圆圆_小时光:顾未易取名太奇葩!扫地机圆圆,儿子叫末未,群名更硬核...
  6. 利用go执行nmap命令
  7. 可测性专题 ——不和陌生人说话
  8. python ADB 手机屏幕 控制脚本 刷粉 刷赞 脚本
  9. 以Echo为例,从锂矿厂到数据矿厂的人工智能产业全景地图是这样的!
  10. 心里话python_一个老运维的心里话