本帖最后由 小库里 于 2025-6-28 22:11 编辑
将一个项目移植到cubeIDE上的freertos。用一个wizNET的W5500作为网络接口,与芯片通信有问题。如果一次就把数据发送到芯片上,能正常工作。 WIZCHIP_CRITICAL_ENTER(); WIZCHIP.CS._ return(); addrsel| =(_W5500_SPI_WRITE_)|#25105;(SPI_VDM_OP); int [4]; addr[0] =((AddrSel & 0x00FF0000)>> 16); addr[1] =((AddrSel & 0x0000FF00)>> 8); addr[2] =((AddrSel & 0x00000FF)>> 0); int [3]; //wizchip_spi_write_bunch(addr,4); --> uint32_t res = HAL_SPI_Transmit(wiz->spi,addr,4,wiz->spi_timeout);
WIZCHIP.CS._ return(); WIZCHIP_CRITICAL_EXIT(); 但是如果我像这样以8位1字节发送,就工作不正常。 WIZCHIP_CRITICAL_ENTER(); WIZCHIP.CS._select(); AddrSel |= (_W5500_SPI_WRITE_ | _W5500_SPI_VDM_OP_); wizchip_spi_write_byte((AddrSel & 0x00FF0000) >> 16); wizchip_spi_write_byte((AddrSel & 0x0000FF00) >> 8); wizchip_spi_write_byte((AddrSel & 0x000000FF) >> 0); wizchip_spi_write_byte(wb); //Looks like this // void wizchip_spi_write_byte(uint8_t wb) // { // wiz5500 *wiz = ð // // uint32_t res = HAL_SPI_Transmit(wiz->spi, (uint8_t)wb, 1, wiz->spi_timeout); // } WIZCHIP.CS._deselect(); WIZCHIP_CRITICAL_EXIT(); 错误提示Update 1 -> you can’t send a ‘0’ with halspi has this in it if ((pData == NULL) || (Size == 0U)) { errorcode = HAL_ERROR; goto error; }
|