Коллеги, а кого нибудь есть опыт с АЦП ADS1299, никак не могу оживить его, все по документации сделал, но чип никак не отвлекается, вот мой код, но может в схеме дело, хотя все несколько раз проверил по осцилограффу смотрел, spi все верно доходит int received_byte; uint8_t SDATAC = 0x11; uint8_t RESET = 0x06; uint8_t WAKEUP = 0x02; uint8_t CONFIG1 = 0x01; uint8_t CONFIG2 = 0x02; uint8_t CONFIG3 = 0x03; uint8_t test = 0x00; void send_command(uint8_t cmd) { HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET); delay_us(2); HAL_SPI_Transmit(&hspi3, (uint8_t*)&cmd,1, 0x1000); delay_us(2); HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET); } void send_data_by_uart (received_byte) { // step 1 - convert dataset char buffer[16]; char buffer1[16]; sprintf(buffer1, "%d\n", received_byte); int a=0; for (a; a<strlen(buffer1); a=a+1) // { if (buffer1[a]!= 0) { buffer[0] = buffer1[a]; HAL_UART_Transmit(&huart5, buffer, 1, 1000); } } a=0; // step 2 - send by uart UART HAL_UART_Transmit(&huart5, "amigos", 6, 1000); //"amigo\r\n\0" } void write_byte(uint8_t reg_addr, uint8_t val_hex) { HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET); delay_us(20); uint8_t adress = 0x40 | reg_addr; HAL_SPI_Transmit(&hspi3, (uint8_t*)&adress, 1, 0x1000); // delay_us(5); HAL_SPI_Transmit(&hspi3, (uint8_t*)&test, 1, 0x1000); // delay_us(5); HAL_SPI_Transmit(&hspi3, (uint8_t*)&val_hex, 1, 0x1000); // delay_us(2); HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET); delay_us(2); } uint8_t read_byte(uint8_t reg_addr) { uint8_t out=0; HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET); delay_us(20); uint8_t adress = 0x20 | reg_addr; HAL_SPI_Transmit(&hspi3, (uint8_t*) &adress, 1 ,0x1000); // delay_us(5); HAL_SPI_Transmit(&hspi3, (uint8_t*)&test, 1, 0x1000); // delay_us(5); HAL_SPI_Receive(&hspi3, (uint8_t*)&out,1,0x1000); // delay_us(2); HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET); delay_us(1); return(out); } void live_bits () { HAL_Delay(100); HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_10); HAL_Delay(100); } HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET); //reset communication, see datasheet HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET); // HAL_SPI_Transmit(&hspi3, (uint8_t*) &RESET, 1, 0x1000); HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET); // delay_us(500); // send_command(SDATAC); delay_us(10); int chSet = read_byte(0x00); send_data_by_uart (chSet); delay_us(10); write_byte(CONFIG1, 0x96); // 96 delay_us(10); write_byte(CONFIG1, 0xD1); delay_us(10); write_byte(CONFIG1, 0xE0); delay_us(10); while (1) { // live_bits (); // HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET); // HAL_Delay(500); // HAL_Delay(10); // Step.2 - Write configuarations bits // HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET); // HAL_Delay(1); HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET); HAL_Delay(1); // Step.3 - Read configuarations bits int Read_con = read_byte(CONFIG1); send_data_by_uart (Read_con); } /* USER CODE END 3 */ }