老师,stm32h7里头spi读写数据用寄存器操作貌似和f4那些不一样
初始化的时候已经调用 __HAL_SPI_ENABLE( &SPI6_Handle ) 使能了SPI模块。
使用 HAL_SPI_TransmitReceive 读写数据没有问题
但我用f4的方式写,这个状态寄存器的状态轮询一直过不去
[C] 纯文本查看 复制代码 unsigned char bsp_spi6_byte_wr ( unsigned char write )
{
volatile uint32_t timeout;
timeout = 0xFFFFFF;
while ( (SPI6->SR & SPI_SR_TXP) == 0 )
{
if ( --timeout == 0 )
{
return 0;
}
}
SPI6->TXDR = write;
timeout = 0xFFFFFF;
while ( (SPI6->SR & SPI_SR_RXP) == 0 )
{
if ( --timeout == 0 )
{
return 0;
}
}
return SPI6->RXDR;
}
|