|

楼主 |
发表于 2019-5-8 14:18:44
|
显示全部楼层
本帖最后由 ^张浩然 于 2019-5-8 14:19 编辑
有这两个函数HAL_SDRAM_Read_16b与HAL_SDRAM_Read_32b,我用HAL_SDRAM_Read_16b读写,写地址上提2位就能对上,但是只能读写32个,超了出错
代码
for(i=0; i<BUFFER_SIZE; i++)
{
aTxBuffer=0xC178A562+i; /* TxBuffer init */
}
/* Write data to the SDRAM memory */
CR=HAL_SDRAM_Write_16b(&sdramHandle1,(uint32_t *)(SDRAM_DEVICE_ADDR+WRITE_ADDR),aTxBuffer, BUFFER_SIZE);
if(CR==0)
printf("\r\n/* Write data to the SDRAM memory success*/\r\n\r\n");
else
printf("\r\n/* Write data to the SDRAM memory fail*/\r\n\r\n");
for(i=0;i< BUFFER_SIZE;i++)
{
printf("%02X:0x%08X ",i,aTxBuffer);
}
printf("\r\n");
/* Read back data from the SDRAM memory */
DR=HAL_SDRAM_Read_16b(&sdramHandle1,(uint32_t *)(SDRAM_DEVICE_ADDR+READ_ADDR), aRxBuffer, BUFFER_SIZE);
if(DR==0)
printf("\r\n/* Read back data from the SDRAM memory success*/\r\n\r\n");
else
printf("\r\n/* Read back data from the SDRAM memory fail*/\r\n\r\n");
for(i=0;i< BUFFER_SIZE;i++)
{
printf("%02X:0x%08X ",i,aRxBuffer);
}
printf("\r\n");
/*##-3- Checking data integrity ############################################*/
for (i = 0; (i < BUFFER_SIZE); i++)
{
if (aRxBuffer != aTxBuffer)
uwWriteReadStatus++;
}
if(uwWriteReadStatus == 0 ) /* check date */
printf("\r\n SDRAM Test OK\r\n");
else
printf("\r\n SDRAM Test False\r\n");
|
|