21ic问答首页 - 请问哪位大牛用过GD32F330F8P6 20pin的做SPI无线模块nrf24l01通讯
请问哪位大牛用过GD32F330F8P6 20pin的做SPI无线模块nrf24l01通讯
SER8023MCU2021-03-26
我按照st的开发例程做,无法驱动无线模块,找不到模块,怀疑是不是读写这部分代码有问题//SPIx 读写一个字节
//TxData:要写入的字节
//返回值:读取到的字节
uint8_t SPI_ReadWriteByte(uint8_t TxData)
{
uint8_t retry=0;
// uint8_t DATA=0;
while (spi_i2s_flag_get(SPIx, SPI_FLAG_TBE) == RESET) //检查指定的SPI标志位设置与否:发送缓存空标志位
{
retry++;
if(retry>200)return 0;
}
spi_write_byte(SPIx, TxData); //通过外设SPIx发送一个数据
// USART0_Send_Byte(TxData);
retry=0;
while (spi_i2s_flag_get(SPIx, SPI_FLAG_RBNE) == RESET)//检查指定的SPI标志位设置与否:接受缓存非空标志位
{
retry++;
if(retry>200)return 0;
}
// DATA = spi_i2s_data_receive(SPIx);
// USART0_Send_Byte(DATA);
return spi_i2s_data_receive(SPIx);//返回通过SPIx最近接收的数据
}
//TxData:要写入的字节
//返回值:读取到的字节
uint8_t SPI_ReadWriteByte(uint8_t TxData)
{
uint8_t retry=0;
// uint8_t DATA=0;
while (spi_i2s_flag_get(SPIx, SPI_FLAG_TBE) == RESET) //检查指定的SPI标志位设置与否:发送缓存空标志位
{
retry++;
if(retry>200)return 0;
}
spi_write_byte(SPIx, TxData); //通过外设SPIx发送一个数据
// USART0_Send_Byte(TxData);
retry=0;
while (spi_i2s_flag_get(SPIx, SPI_FLAG_RBNE) == RESET)//检查指定的SPI标志位设置与否:接受缓存非空标志位
{
retry++;
if(retry>200)return 0;
}
// DATA = spi_i2s_data_receive(SPIx);
// USART0_Send_Byte(DATA);
return spi_i2s_data_receive(SPIx);//返回通过SPIx最近接收的数据
}
您需要登录后才可以回复 登录 | 注册