您好!
我正在尝试向 ADC 值写入一个简单的程序。 根据数据表(8.3.14.2.2寄存器读取),我写了以下函数:
void ADS7028_SPI_READ_reg (ADS7028_Device*器件、ADS7028_Reg regAddr、uint8_t * pData、INT8_t size)
{
uint8_t SPI_REG_addr[3]={0}、SPI_REG_READ[3]={0};
SPI_REG_ADDR[0]= 0x10;
SPI_REG_addr[1]= regAddr;
SPI_REG_ADDR[2]= 0x00;
HAL_GPIO_WritePin (Device->CS_Port、Device->CS_Pin、GPIO_PIN_RESET);
HAL_SPI_TransmitReceive (Device->hspi、SPI_REG_addr、SPI_REG_READ、3、HAL_MAX_DELAY);
HAL_GPIO_WritePin (Device->CS_Port、Device->CS_Pin、GPIO_PIN_SET);
HAL_DELAY (20);
SPI_REG_ADDR[0]= 0x00;
SPI_REG_ADDR[1]= 0x00;
SPI_REG_ADDR[2]= 0x00;
HAL_GPIO_WritePin (Device->CS_Port、Device->CS_Pin、GPIO_PIN_RESET);
HAL_SPI_TransmitReceive (Device->hspi、SPI_REG_addr、SPI_REG_READ、3、HAL_MAX_DELAY);
HAL_GPIO_WritePin (Device->CS_Port、Device->CS_Pin、GPIO_PIN_SET);
pData[0]= SPI_REG_READ[0];
pData[1]= SPI_REG_READ[1];
}
我将 Nucleo 64板与 STM32WB55配合使用。 我注意到我需要在第二个帧之前添加一个延迟(10到100ms)。
这对我的应用来说是有问题的。 您是否知道是否有办法避免此延迟?
谢谢你。
此致。
穆罕默德
