资源简介
使用STM32F405的SPI通信接口对ADS1292R进行寄存器配置的参考代码源文件。

代码片段和文件信息
#include “ads1292r.h“
#include “stm32f4xx_hal_spi.h“
#include
#include “string.h“
#include “spi.h“
// active LOW
void ads_Reset(uint8_t reset)
{
if(reset)
HAL_GPIO_WritePin(ADS_RESET_GPIO_Port ADS_RESET_Pin GPIO_PIN_SET);
else
HAL_GPIO_WritePin(ADS_RESET_GPIO_Port ADS_RESET_Pin GPIO_PIN_RESET);
}
// active LOW
void ads_CS(uint8_t cs)
{
if(cs)
HAL_GPIO_WritePin(ADS_CS_GPIO_Port ADS_CS_Pin GPIO_PIN_SET);
else
HAL_GPIO_WritePin(ADS_CS_GPIO_Port ADS_CS_Pin GPIO_PIN_RESET);
}
// active HIGH
void ads_Start(uint8_t start)
{
if(start)
HAL_GPIO_WritePin(ADS_START_GPIO_Port ADS_START_Pin GPIO_PIN_SET);
else
HAL_GPIO_WritePin(ADS_START_GPIO_Port ADS_START_Pin GPIO_PIN_RESET);
}
uint8_t ads_Read_ID(void)
{
uint8_t send_data[3] read_data[3];
send_data[0] = ADS1292R_CMD_RREG_1(ADS1292R_REG_ID);
send_data[1] = ADS1292R_CMD_RREG_2(1);
send_data[2] = 0x00;
while(HAL_OK!= HAL_SPI_TransmitReceive(&hspi1send_dataread_data31000));
return read_data[2];
}
void ads_Init(void)
{
uint8_t send_data[20] read_data[20];
ads_Reset(1); // 复位引脚置一,正常工作
osDelay(1000);
// ads_CS(0);
osDelay(100);
//指令:停止连续读数据模式
send_data[0]=ADS1292R_CMD_SDATAC;
while(HAL_OK!= HAL_SPI_TransmitReceive(&hspi1send_dataread_data11000));
osDelay(10);
//写配置寄存器2=0xa0,内部参考电压为2.42V
send_data[0] = ADS1292R_CMD_WREG_1(ADS1292R_REG_CONFIG2);
send_data[1] = ADS1292R_CMD_WREG_2(1);
send_data[2] = 0xa0;
while(HAL_OK!= HAL_SPI_TransmitReceive(&hspi1send_dataread_data31000));
osDelay(10);
//写配置寄存器1=0x01,连续转换模式,采样率为250
send_data[0] = ADS1292R_CMD_WREG_1(ADS1292R_REG_CONFIG1);
send_data[1] = ADS1292R_CMD_WREG_2(1);
send_data[2] = 0x01;
while(HAL_OK!= HAL_SPI_TransmitReceive(&hspi1send_dataread_data31000));
osDelay(10);
//写导联脱落检测寄存器=0xF0,正负极分别为70%和30%,该功能实际未使用
send_data[0] = ADS1292R_CMD_WREG_1(ADS1292R_REG_LOFF);
send_data[1] = ADS1292R_CMD_WREG_2(1);
send_data[2] = 0xF0;
while(HAL_OK!= HAL_SPI_TransmitReceive(&hspi1send_dataread_data31000));
osDelay(10);
//写通道1设置寄存器=0x30,设置增益为3,正常节点输入
send_data[0] = ADS1292R_CMD_WREG_1(ADS1292R_REG_CH1SET);
send_data[1] = ADS1292R_CMD_WREG_2(1);
send_data[2] = 0x30;
while(HAL_OK!= HAL_SPI_TransmitReceive(&hspi1send_dataread_data31000));
osDelay(10);
//写右腿驱动寄存器=0xEF,PGA的斩波频率为4分频,使能右腿驱动,关闭右腿驱动的脱落检测,通道2的右腿驱动负极和正极分别连接到通道2输入的负极和正极,通道1的右腿驱动负极和正极分别连接到通道1的负极和正极
send_data[0] = ADS1292R_CMD_WREG_1(ADS1292R_REG_RLD_SENS);
send_data[1] = ADS1292R_CMD_WREG_2(1);
send_data[2] = 0xEF;
while(HAL_OK!= HAL_SPI_TransmitReceive(&hspi1send_dataread_data31000));
osDelay(10);
//写脱落检测寄存器=0x0F,关闭通道1和2的电流方向检测,使能通道1和2的正负极脱落检测
//其实只使用了通道1,而且脱落检测实际上没有使用
send_data[0] = ADS1292R_CMD_WREG_1(ADS1292R_REG_LOFF_SENS);
send_data[1] = ADS1292R_CMD_WREG_2(1);
send_data[2] = 0x0F;
while(HAL_OK!= HAL_SPI_TransmitReceive(&hspi1sen
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-01-15 03:15 ADS1292R配置源文件\
文件 4288 2019-01-15 03:14 ADS1292R配置源文件\ads1292r.c
文件 1267 2019-01-15 01:54 ADS1292R配置源文件\ads1292r.h
相关资源
- 心电信号的处理与自动诊断-心电信号
- 心电图教学系统免费版.
-
心电图数据的xm
l类型文件 - multisim仿真生成心电信号
- 基于DSP的心电信号采集和分析系统
- 心电文件bmd101
- ECG心电算法陷波,低通,小波变换
- A7129原厂资料含软件、配置和PCB布线指
- 心电信号检测放大电路的设计
- QtCharts绘制动态心电图
- 一个完整的心电检测系统文档硬件,
- 基于STM32F103+ADS1292的心率实时显示串口
- 基于自适应滤波的胎儿心电信号提取
- 读取心电图txt格式文件数据并且显示
- MIT-BIH的1分钟心电图的txt数据文件
- LT8641寄存器配置
- Labview 心电信号处理
- ICN6211资料及寄存器配置生成器
- 自适应双阈值法检测心电R波波峰,配
- 心电波形控件改改
- Qt软件编程的心电监测平台.rar
- SiI9136-3数据手册+寄存器配置+驱动
- ADS1292R开发板资料
- 硕士论文心电信号预处理算法研究
- 自适应滤波器-关于胎儿心电
- 基于stm32的三导联心电仪设计源码
- LDO低压差线性稳压器核心电路的设计
- HelloChart折线图动态刷新--模拟心电图
- stm32单片机实现心电图采样以及显示
- ad9361寄存器配置资料
评论
共有 条评论