当前位置: 首页 > news >正文

【RA-Eco-RA2T1开发板】心率监测仪

【RA-Eco-RA2T1开发板】心率监测仪

本文介绍了 RA-Eco-RA2T1-48PIN-V1.0 开发板结合心率传感器模块,通过 ADC 电压采样、心率计算、串口通信,实现心率监测的项目设计,包括环境搭建、工程配置、代码、流程图、效果演示等。

项目介绍

  • 准备工作:心率传感器模块、硬件连接、环境搭建;

  • 工程测试:工程创建、工程配置、流程图、代码、编译上传、效果演示。

心率传感器

心率传感器,采用光电容积脉搏波描记法,通过测量血液中血红蛋白随心脏跳动而对氧气吸收的变化量来测量人体心率参数。

  • 具有响应快,性能稳定,适应性强等特点。

  • 模块拥有方波和脉搏波两种信号输出模式,可以通过板载开关去自由切换输出信号。

  • 脉搏波将输出一个连续的心率波形,而方波将根据心率的变化输出对应的方波。

  • 心率传感器体积小巧,可以佩戴于手指、手腕等检测位置。

硬件连接

连接心率传感器模块和 RA2T1 开发板

心率传感器RA2T1Note
SignalP013 (AN000)Data
GNDGNDGround
VCC3V3Power

使用杜邦线连接 JLINK-OB 和 RA2T1,实现工程调试、固件上传、串口通信,接线方式如下

Jlink-OBRA2T1Note
DIOSWDIOData I/O
CLKSWCLKClock
RXDTXD (P109)Transmite
TXDRXD (P110)Receive
GNDGNDGround
3V3VCCPower

实物图

环境搭建

搭建和使用 e2studio IDE 开发环境。

  • 下载并安装 瑞萨FSP (flexible software package) 灵活配置软件包 ;

  • 安装时注意选择 GNU ARM 工具链;

工程创建

  • 文件 - 新建 - 瑞萨 C/C++ 项目 -Renesas RA

  • 自定义设备选择R7FA2T1074CFL,调试器选择 J-Link ;

  • 项目创建完成后,选择进入透视图模式;

工程配置

工程配置包括引脚 GPIO 配置、时钟配置、串口配置、ADC 配置。

引脚配置

  • 进入 FSP 配置界面,打开 Pins 标签页,使能 Peripherals - Analog:ADC - ADC0,操作模式为自定义;

  • 选择输入引脚 AN000 - P013;

时钟配置

根据原理图可知,板载 XTAL 晶振频率为 20MHz;

这里使用 HOCO 内部晶振,时钟树保持默认配置。

串口配置

  • 进入 FSP 配置界面,打开 Pins 标签页,根据原理图,板载 CH340 对应串口引脚为 P109 和 P110,因此将 SCI9 配置为异步串口模式;

  • 打开Stacks标签页,新建串口通信堆栈New Stack-Connectivity-UART (r_sci_uart)

  • 串口属性配置,General 标签下的 Channel 改为 9,名称改为g_uart9,中断回调函数命名为user_uart9_callback

  • 进入 BSP 标签页,配置 RA Common 属性,RA Common 标签下的 Heap size 改为0x2000

ADC 配置

  • 进入Stacks标签页,新建 ADC 堆栈New Stack-Analog-ADC (r_adc)

  • 选中 ADC 堆栈,进入属性标签及参数配置;

  • 在 Input 选项下,通道模式为 Scan,勾选Temperature Sensor选项;

  • 中断配置,Interrupts-Callback值修改为user_adc0_callback,优先级设置为Priority 2,触发源为软件 ;

  • 点击Generate Project Content

  • 右键项目文件夹,构建工程,确认无报错;

流程图

工程代码

打开./src/hal_entry.c文件,添加如下代码

#include "hal_data.h" #include <stdio.h> #include "hc595.h" fsp_err_t err = FSP_SUCCESS; volatile bool uart_send_complete_flag = false; void user_uart9_callback (uart_callback_args_t * p_args) { if(p_args->event == UART_EVENT_TX_COMPLETE) { uart_send_complete_flag = true; } } #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #endif PUTCHAR_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 callback -------------*/ volatile bool scan_complete_flag = false; void uaser_adc0_callback (adc_callback_args_t * p_args) { FSP_PARAMETER_NOT_USED(p_args); scan_complete_flag = true; } /* -------- ADC raw & voltage -------- */ static void get_adc_voltage(uint16_t *p_raw, float *p_volt) { uint16_t adc_raw; /* 1. 启动 ADC 并等待完成 */ R_ADC_ScanStart(&g_adc0_ctrl); adc_status_t status = { .state = ADC_STATE_SCAN_IN_PROGRESS }; while (status.state == ADC_STATE_SCAN_IN_PROGRESS) { R_ADC_StatusGet(&g_adc0_ctrl, &status); } /* 2. 读adc通道原始码值 */ err = R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_raw); assert(FSP_SUCCESS == err); /* 3. ADC 电压转换 */ float volt = (float)(adc_raw/4095.0)*3.3; /* 4. 返回数据 */ *p_raw = adc_raw; *p_volt = volt; } void hal_entry(void) { /* Initializes UART */ err = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg); assert(FSP_SUCCESS == err); /* Initializes the module. */ err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg); assert(FSP_SUCCESS == err); while(1) { uint16_t adc_raw; float volt; get_adc_voltage(&adc_raw, &volt); printf("{\"adc\": %u, \"volt\": %.3f}\r\n",adc_raw,volt); R_BSP_SoftwareDelay (50, BSP_DELAY_UNITS_MILLISECONDS); } }

保存文件。

工程编译

  • 右键项目文件夹,选择属性,进入C/C++ 构建-设置选项;

  • 进入GNU Arm Cross Create Flash Image - General选项;

  • 在输出格式中选择Intel HEX,应用并关闭;

  • 右键项目文件夹,构建工程,确认无报错;

  • 查看工程目录下的Debug文件夹,生成相应的 HEX 格式的固件;

固件上传

开发板支持串口烧录、J-Link、EZ-Cube 调试器烧录等,这里使用 JLINK-OB 调试工程。

  • 点击工具栏的小虫子 Debug 按钮,进入调试界面;

  • 或右键项目文件夹,选择调试配置,选中当前项目对应的 elf 文件,调试工具为 JLINK,开始调试;

  • 进入调试界面,点击菜单栏的运行按钮,程序开始执行;

效果演示

  • 打开网页串口绘图工具: 高性能WebSerial串口绘图工具 ;
  • 配置参数,连接串口,开始采集;

  • 根据串口数据绘图结果,可获取心电图。

总结

本文介绍了 RA-Eco-RA2T1-48PIN-V1.0 开发板结合心率传感器模块,通过 ADC 电压采样、心率计算、串口通信,实现心率监测的项目设计,包括环境搭建、工程配置、代码、流程图、效果演示等,为相关产品的快速开发和应用设计提供了参考。

http://www.jsqmd.com/news/1315121/

相关文章:

  • 854637
  • 独角兽成交大师营
  • 阅读理解得分卡在22/30?这6个AI辅导盲区正在悄悄拖垮你的提分曲线
  • DeepMind AGI路线图解析:四条路径与六大技术关卡
  • Grove三色电子墨水屏入门指南:从原理到Arduino实战应用
  • 3分钟搞定Mac微信防撤回:零配置本地化终极方案
  • Altium Designer与Ansys Q3D提取PCB寄生参数实战指南
  • 深圳95码号资质申请/企业短信平台服务商信息核对:深圳市高斯通智能通信股份有限公司地址、电话与到店准备|2026年8月2日资料更新 - GEO99
  • Docker Desktop 内置 K8s 从入门到实战:部署你的第一个 Nginx 集群 - PC2005
  • [具身智能-179]:深度解析:ROS2 全栈式分布式机器人开发运维统一系统:三大通信范式、平台异构兼容 + 分布式动态组网。全生命周期统一体系,仿真、开发、部署、运维一体化
  • 智能优化算法改进策略:从通用工具到工程难题的精准求解
  • 电动车跨省邮寄多少钱?2026年寄电动车避坑指南,整车托运260元起 - 快递物流资讯
  • 系统架构设计:从决策到演进,平衡业务与技术的艺术
  • NoFences:终极免费Windows桌面分区管理神器,告别混乱工作空间!
  • Godot 4 2D回合制战斗系统架构解析与实战
  • Windows系统Hadoop伪分布式环境搭建与MapReduce实战指南
  • 从单环到双环:PID串级控制在电机精准调速中的原理与工程实现
  • 江津区食堂蔬菜供货优质商家名单及采购建议
  • TES战队LPL内战统治力解析:从对线到团战的战术拆解与S赛前景
  • 2026安徽省初中毕业喜欢小动物?高科宠物护理专业人手一机真宠实操!怎么报名?在哪报名?联系方式多少? - 最新资讯
  • 2026年8月深圳高斯通智能通信股份企业95号码/智能语音客服地址整理|电话4000168339与到店准备|2026年8月2日资料更新 - GEO99
  • 如何高效搭建私有知识库:开源文档平台部署全攻略
  • 洛雪音乐音源配置实战:3步解锁全网无损音乐聚合方案
  • 从电竞评论到机器学习预测:技术思维如何解决信息过载与主题混淆
  • Unity FBX导出实战:免费方案打通跨平台3D资产协作
  • 网盘直链下载助手终极教程:如何免费解锁百度网盘、阿里云盘等9大平台高速下载
  • AI化学家:机器科学家如何重塑化学研发?
  • FPGA XADC深度解析:从片上监控原理到高可靠系统设计实战
  • 【一线大厂AI开发流水线实录】:从代码生成到单元测试自动生成,我们淘汰了3款“伪智能”工具
  • 告别手动抢票烦恼:大麦网自动抢票脚本终极指南