您好,我无法 使用 SPI 协议从 ADS 1298 with Arduino 获取数据。
请帮帮我。
在下面、我连接了硬件和软件配置。。。
与 ADS 1298 ECGFE 板进行 Arduino 连接
J3.3 SCLK 连接到 Arduino 引脚13
J3.4 GND 连接到 Arduino 引脚 GND 公共。
J3.7 CS 补码连接到 Arduino 引脚10
J3.8重置连接到 Arduino 引脚7。
J3.11 DIN 连接到 Arduino 引脚11
J3.13 DOUT 连接到 Arduino 引脚12
J3.15 DRDY 连接到 Arduino 引脚3 (已编程)
J4.9电源为3.3V
J4.5连接到 Arduino GND
ADS 1298 (带 Arduino UNO)的软件代码。
#include "ADS1298.h" #include "adsCMD.h" #include int gMaxChan = 8; //int gIDval = 0; //int activeSerialPort = 0; //const int kPIN_LED = 13; void setup (){ 使用命名空间 ADS1298; pinMode (IPIn_CS、输出); pinMode (PIN_START、输出); 引脚模式(IPIn_DRDY、输入); 引脚模式(IPIn_RESET、输出); SPI.beginTransaction(SPISettings(16000000、MSBFIRST、SPI_MODE1)); SPI.begin(); // SPI.setBitOrder(MSBFIRST); SPI.setClockDivider(SPI_CLOCK_DIV4); // SPI.setDataMode(SPI_MODE1); delay (100); adc_send_command (SDATAC); delay (10); Serial.begin(9600); adc_rreg (0x20); while (Serial.read()>= 0){} delay (200); } void loop () { long buffer[50]; int incomingByte = 0; static unsigned long tLast = 0; 如果(Serial.Available ()>0) { IncomingByte = Serial.Read(); } if (millis ()-tLast < 500) { tLast =毫秒(); } unsigned long tStart =毫秒(); for (int channel = 1;channel <= 8;channel++) { 字节值[10]; Value[0]=(字节)(buffer[通道]>>8); //value[1]=(字节)(缓冲区[通道]>>16); //value[2]=(字节)(缓冲区[通道]>>8); //value[3]=(字节)(缓冲区[通道]); serial.println (值[0]); //Serial.println (Value[1]); //Serial.println (value[2]); //Serial.println (value[3]); } }








