打印

GD32F103VC替换ST32F103VC后,SPI读出的数全是0xff

[复制链接]
2308|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
win1234568899|  楼主 | 2021-6-3 22:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用ST芯片,SPI读取正常。换成GD芯片后,按照官方提供的GD和ST差异表,修改了程序,u8 SPI_FLASH_SendByte(u8 byte) 返回值全是0xff,有人遇到过这种情况吗?

u8 SPI_FLASH_SendByte(u8 byte)   //  
{

/* Loop while DR register in not emplty */
        while ((SPI1->SR & SPI_I2S_FLAG_TXE) == 0);
  /* Send byte through the SPI1 peripheral */
        SPI1->DR =byte;
  /* Wait to receive a byte */
        while ((SPI1->SR & SPI_I2S_FLAG_RXNE) == 0);
  /* Return the byte read from the SPI bus */
        return SPI1->DR;
}

使用特权

评论回复

相关帖子

沙发
win1234568899|  楼主 | 2021-6-3 22:14 | 只看该作者

GD32F103VC替换ST32F103VC后,SPI读出的数全是0xff

void SPI_FLASH_BufferRead(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead)
{
        //Select the FLASH: Chip Select low
        //GPIOA->BRR = FLASH_CS;
        SPI_FLASH_CS_LOW();

        /* Send "Read from Memory " instruction */
        SPI_FLASH_SendByte(READ);

        /* Send ReadAddr high nibble address byte to read from */
        SPI_FLASH_SendByte((ReadAddr & 0xFF0000) >> 16);
        /* Send ReadAddr medium nibble address byte to read from */
        SPI_FLASH_SendByte((ReadAddr& 0xFF00) >> 8);
        /* Send ReadAddr low nibble address byte to read from */
        SPI_FLASH_SendByte(ReadAddr & 0xFF);

        while(NumByteToRead--) /* while there is data to be read */
        {
        /* Read a byte from the FLASH */
                *pBuffer = SPI_FLASH_SendByte(Dummy_Byte);
        /* Point to the next location where the byte read will be saved */
                pBuffer++;
        }

        //Deselect the FLASH: Chip Select high
//        GPIOA->BSRR = FLASH_CS;
        SPI_FLASH_CS_HIGH();
       
}

SPI_FLASH_SendByte(Dummy_Byte)读到的全是0xff

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝