主题中讨论的其他器件:ADS1298R
您好!
我尝试通过写入配置寄存器和 ADS1298R 的单个通道来获取转换后的数据。 我已将 PDK 与 STM32F4 MCU 连接。 我要附加下面代码的逻辑。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//定义//
uint8_t start = 0x08; //启动操作码
uint8_t RX_RDATA[3]; //存储接收数据的数组
uint8_t RDATA=0x12; //RDATA 操作码
uint8_t TXBUFFER1[3]={0x41、0x00、0xC6}; //要写入 CONFIG1寄存器的值
uint8_t TXBUFFER2[3]={0x42、0x00、0x10}; //要写入 CONFIG2寄存器的值
uint8_t TXBUFFER3[3]={0x43、0x00、0xFC}; //要写入 CONFIG3寄存器的值
uint8_t TXBUFFER4[3]={0x44、0x00、0x03}; //要写入 LOFF 寄存器的值
uint8_t TXBUFFER5[3]={0x45、0x00、0x03}; //要写入 CH1寄存器的值
//main//
HAL_GPIO_WritePin (GPIOD、GPIO_PIN_9、GPIO_PIN_RESET); //START 引脚拉低
HAL_DELAY (1);
HAL_SPI_transmit (&hspi2、TXBUFFER1、3、50); //TX CONFIG1写入值
HAL_SPI_transmit (&hspi2、TXBUFFER2、3、50); //TX CONFIG2写入值
HAL_SPI_Transmit (&hspi2、TXBUFFER3、3、50); //TX CONFIG3写入值
HAL_SPI_Transmit (&hspi2、TXBUFFER4、3、50); //TX LOFF 寄存器写入值
HAL_SPI_transmit (&hspi2、TXBUFFER5、3、50); //TX CH1REG 写入值
HAL_DELAY (1);
HAL_SPI_transmit (&hspi2、&start、1、50); //TX 启动操作码
//ISR 检测 DRDY 下降沿//
void HAL_GPIO_EXTI_Callback (uint16_t GPIO_Pin)
{
HAL_SPI_transmit (&hspi2、&RDATA、1、50);//TX RDATA 操作码
HAL_SPI_Receive (&hspi2、RX_RDATA、3、50); //使用 SPI 接收数据
}
----------------------------------------------------------------------
接收缓冲器阵列(RX_RDATA)上的值为0x71。 但是、由于每个接收的 SPI 大小为8位、因此阵列的所有3个位上只能得到0x71。 如何解决此问题? 感谢您的任何帮助。