level 9
巨大八爪鱼
楼主
测试时不要使用杜邦线,一定要把PCB板画出来之后再调试。时钟线长度必须要是数据线长度的两倍。
wifi.h里面,WIFI_CLOCK_FREQ设为1000000(也就是1MHz),WIFI_USEDMA设为0。
wifi_lowlevel.c里面,SDIO全部替换成SDMMC。
WiFi_LowLevel_WriteData(CMD53发送函数)不用改。
只需要改WiFi_LowLevel_ReadData(CMD53接收函数)。
原本STM32F1的程序里面写的是:if (__SDIO_GET_FLAG(SDIO, SDIO_FLAG_RXDAVL) != RESET)
但是STM32H7里面没有RXDAVL位。
RXDAVL(data available)的反义词是RXFIFOE(FIFO empty),我们只需要改成:
if (__SDMMC_GET_FLAG(SDMMC2, SDMMC_FLAG_RXFIFOE) == RESET)
就可以了!这个接收函数能完美兼容SDIO 4线模式,以及Stream+Block混合模式(WIFI_RWDATA_ALLOWMULTIBYTE)。

2021年12月15日 15点12分
1
wifi.h里面,WIFI_CLOCK_FREQ设为1000000(也就是1MHz),WIFI_USEDMA设为0。
wifi_lowlevel.c里面,SDIO全部替换成SDMMC。
WiFi_LowLevel_WriteData(CMD53发送函数)不用改。
只需要改WiFi_LowLevel_ReadData(CMD53接收函数)。
原本STM32F1的程序里面写的是:if (__SDIO_GET_FLAG(SDIO, SDIO_FLAG_RXDAVL) != RESET)
但是STM32H7里面没有RXDAVL位。
RXDAVL(data available)的反义词是RXFIFOE(FIFO empty),我们只需要改成:
if (__SDMMC_GET_FLAG(SDMMC2, SDMMC_FLAG_RXFIFOE) == RESET)
就可以了!这个接收函数能完美兼容SDIO 4线模式,以及Stream+Block混合模式(WIFI_RWDATA_ALLOWMULTIBYTE)。

