STM32H743 + QSPI for AD7616
My development environment is stm32cubeMX and IAR.
1.Init QSPI
2.Read data via QSPI
if the DummyCycles = 0,the program is running abnormally.
if the DummyCycles over 2,the program is normally.
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MPU Configuration--------------------------------------------------------*/
MPU_Config();
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_QUADSPI_Init();
/* USER CODE BEGIN 2 */
/*Read Data Via Qspi*/
uint8_t aucBuf[2];
QSPI_ReadRegEx(aucBuf, 2);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
uint8_t QSPI_ReadRegEx(uint8_t *_pBuf, uint16_t _usReadSize)
{
QSPI_CommandTypeDef sCommand = {0};
sCommand.DummyCycles = 0; /* �?需�?空周期 */
sCommand.InstructionMode = QSPI_INSTRUCTION_NONE; /* No instruction */
sCommand.AddressMode = QSPI_ADDRESS_NONE; /* No address ;QSPI_ADDRESS_1_LINE */
sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE; /* 无交替字节 */
sCommand.DataMode = QSPI_DATA_1_LINE; /* 1线数�?�方�? */
sCommand.NbData = _usReadSize; /* 写数�?�大�? */
sCommand.DdrMode = QSPI_DDR_MODE_DISABLE; /* �?支�?DDR */
sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY; /* DDR模�?,数�?�输出延迟 */
sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD; /* 仅�?��?一次命令 */
if(HAL_QSPI_Command(&hqspi, &sCommand, 5000) != HAL_OK)
{
return 0;
}
if(HAL_QSPI_Receive(&hqspi, _pBuf, 5000) != HAL_OK)
{
return 0;
}
return 1;
}