资源简介
非常好用的ADAS1000初始化代码,压箱老底存货。用于多导心电,ADI方案。特别是十二导联心电方案应用
代码片段和文件信息
#include “asf.h“
#include “ADAS1000.h“
#include “main.h“
#include “CommonType.h“
//uint8_t ecgdata[24];
static unsigned long frameSize = 0; //ADAS1000 frame size in bytes
static unsigned long frameRate = 0; //ADAS1000 frame rate
static unsigned long inactiveWordsNo = 0; //number of inactive words in a frame
//uint8_t Dummy_Buff[28]={0x40};
//uint8_t ECG_rBuff[28];
/* SPI clock setting (Hz). */
static uint32_t gs_ul_spi_clock = 5000000;
extern void Delay_ms(volatile uint32_t nTime);
static void configure_SPI2(void)
{
//引脚配置指定外设
ioport_set_port_peripheral_mode(IOPORT_PIOA PIO_PA6A_SPI2_MOSI|PIO_PA5A_SPI2_MISOIOPORT_MODE_MUX_A);//PIO_PA16A_SPI2_NPCS0|PIO_PA15A_SPI2_NPCS1
ioport_set_port_peripheral_mode(IOPORT_PIOAPIO_PA24B_SPI2_SPCKIOPORT_MODE_MUX_B);//clk
/* Get pointer to SPI master PDC register base */
// g_p_spim_pdc = spi_get_pdc_base(SPI2);
/* Enable the peripheral and set SPI mode. */
flexcom_enable(FLEXCOM2);
flexcom_set_opmode(FLEXCOM2 FLEXCOM_SPI);
// sysclk_enable_peripheral_clock(ID_FLEXCOM2);
spi_disable(SPI2);
spi_reset(SPI2);
// spi_set_lastxfer(SPI2);//设置最后一个数据传输完成后拉高NPCS。
spi_set_master_mode(SPI2);
spi_disable_mode_fault_detect(SPI2);//模式错误检测禁止
// spi_set_peripheral_chip_select_value(SPI2 SPI_CHIP_PCS);//0:PCS=x0,NPC0有效
spi_set_clock_polarity(SPI2 SPI_CHIP_SEL SPI_CLK_POLARITY);
spi_set_clock_phase(SPI2 SPI_CHIP_SEL SPI_CLK_PHASE);
spi_set_bits_per_transfer(SPI2 SPI_CHIP_SELSPI_CSR_BITS_8_BIT);
spi_set_baudrate_div(SPI2SPI_CHIP_SEL(sysclk_get_peripheral_hz()/gs_ul_spi_clock));//默认BRSRCCLK=0PERIPH_CLK
// spi_set_baudrate_div(SPI21(sysclk_get_peripheral_hz()/gs_ul_spi_clock));
// spi_set_transfer_delay(SPI2 SPI_CHIP_SEL SPI_DLYBSSPI_DLYBCT);
spi_enable(SPI2);
}
void ADAS1000_SPI_Write_Read_Bytes(uint8_t *wdata uint8_t *rdata uint16_t n ADAS1000Device device)
{
uint32_t timeout = SPI_TIMEOUT;
if(device == ADAS1000_MASTER)
{
ADAS1000_Master_Select();
}
else
{
ADAS1000_Slave_Select();
}
while (n--)
{
while (!(SPI2->SPI_SR & SPI_SR_TDRE))
{
if (!timeout--)
return ;
}
SPI2->SPI_TDR = *wdata;
/* Wait transfer done. */
while ((SPI2->SPI_SR & SPI_SR_RDRF) == 0);
*rdata = SPI2->SPI_RDR;
wdata++;
rdata++;
}
if(device == ADAS1000_MASTER)
{
ADAS1000_Master_UnSelect();
}
else
{
ADAS1000_Slave_UnSelect();
}
}
void ECG_init(void)
{
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOA 22) IOPORT_DIR_OUTPUT); //RESETB
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOB 2) IOPORT_DIR_OUTPUT);//PDB
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOA 21) IOPORT_DIR_INPUT);//DRDY
ioport_set_pin_mode(IOPORT_CREATE_PIN(PIOA 21) IOPORT_MODE_PULLUP);
//PIO_PA16A_SPI2_NPCS0|PIO_PA15A_SPI2_NPCS1片选手动
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOA 15) IOPORT_DIR_OUTPUT);
ioport_set_pin_dir(IOPORT_CREATE_PIN(PIOA 16) IOPORT_DIR_OUTPUT);
ADAS1000_Master_Select();
ADAS1000_Slave_Sel
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16346 2017-06-02 17:58 ADAS1000.c
文件 59212 2017-06-02 15:08 ADAS1000.h
相关资源
- 心电信号的处理与自动诊断-心电信号
- 心电图教学系统免费版.
-
心电图数据的xm
l类型文件 - multisim仿真生成心电信号
- 基于DSP的心电信号采集和分析系统
- 心电文件bmd101
- ECG心电算法陷波,低通,小波变换
- 心电信号检测放大电路的设计
- QtCharts绘制动态心电图
- 一个完整的心电检测系统文档硬件,
- 基于STM32F103+ADS1292的心率实时显示串口
- 基于自适应滤波的胎儿心电信号提取
- 读取心电图txt格式文件数据并且显示
- MIT-BIH的1分钟心电图的txt数据文件
- Labview 心电信号处理
- 自适应双阈值法检测心电R波波峰,配
- 心电波形控件改改
- Qt软件编程的心电监测平台.rar
- 硕士论文心电信号预处理算法研究
- 自适应滤波器-关于胎儿心电
- 基于stm32的三导联心电仪设计源码
- LDO低压差线性稳压器核心电路的设计
- HelloChart折线图动态刷新--模拟心电图
- stm32单片机实现心电图采样以及显示
- AD8232基于stm32的无线蓝牙传输心电图检
- MIT-BIH 48组心电数据全
- Qt动态心电图绘制-利用队列进行实时
- 基于现代信号处理技术的心音与心电
- 基于stm32便携式心电图仪设计
- YY1079-2008 心电监护仪
评论
共有 条评论