This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1299: 【紧急】内部产生信号测试,但是接收不到数据。

Part Number: ADS1299

目前测试发现,SPI接收到的数据不对,全部都是255和0,并且没有规律,但是SPI函数可以正常使用。使用stm32f407。想看看论坛里有没有人有这样的问题,可以帮忙解答。

下面是ADS1299的原理图:

下面是ADS1299初始化以及寄存器配置:相关定义已经定义好了。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void ADS_PowerOnInit(void)
{
uint8_t tid;
uint8_t tmp;
HAL_GPIO_WritePin(GPIOA,START_Pin,GPIO_PIN_RESET);
tmp = SDATAC;
HAL_SPI_Transmit(&hspi1,&tmp,1,1000);//===fff=== Í£Ö¹Á¬Ðø¶Áģʽ
HAL_Delay(1000);
LED1_TOGGLE();
HAL_GPIO_WritePin(PWDN_LOW_GPIO_Port,PWDN_LOW_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,RESET_LOW_Pin,GPIO_PIN_SET);
HAL_Delay(3000);
LED1_TOGGLE();
HAL_GPIO_WritePin(GPIOA,RESET_LOW_Pin,GPIO_PIN_RESET);
HAL_SPI_Transmit(&hspi1,&tmp,1,1000);
HAL_GPIO_WritePin(GPIOA,RESET_LOW_Pin,GPIO_PIN_SET);
LED1_TOGGLE();
HAL_Delay(10);
tid = RD_REG(RREG,1);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

下面是stm32f407主程序:省略掉了一些数组和标志位的定义。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
while(1)
{
ADS_PowerOnInit();
HAL_GPIO_WritePin(START_GPIO_Port, START_Pin, GPIO_PIN_SET);
uint8_t tmp;
tmp = RDATAC;
HAL_SPI_Transmit(&hspi1,&tmp,1,1000);
while(times<32)
{
if(DRDY==GPIO_PIN_SET)
{
sign=1;
}
if(DRDY==GPIO_PIN_RESET&&sign==1)
{
times++;
sign=0;
for(int i=0;i<27;i++)
{
HAL_SPI_Receive(&hspi1,&data[count],1,1000);
count++;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

x 出现错误。请重试或与管理员联系。