中级会员
 
- 积分
- 267
- 金钱
- 267
- 注册时间
- 2019-8-5
- 在线时间
- 40 小时
|
发表于 2021-10-19 11:39:45
|
显示全部楼层
u8 SPI1_RXonly( void )
{
SPI1->CR1 &= ~( 1<<15 ) ; //双向数据模式使能
SPI1->CR1 |= 1<<10 ; //SPI1主机配置为只接收模式
DMA1_Channel2->CNDTR &= 0x0000 ; //传输数量寄存器清零
DMA1_Channel2->CNDTR = buffersize ; //传输数量设置为buffersize个
DMA1->IFCR = 0xF0 ; //清除通道3的标志位
SPI1->DR; //接送前读一次SPI1->DR,保证接收缓冲区为空
DMA1_Channel2->CCR |= 1 << 0 ; //开启DMA通道2
while( ( DMA1->ISR & 0x20 ) == 0 ); //等待DMA传输完成
DMA1_Channel2->CCR &= ~( 1 << 0 ) ; //关闭DMA通道3
}
程序一直卡在 while( ( DMA1->ISR & 0x20 ) == 0 ); //等待DMA传输完成
有谁遇到这个问题的?是如何解决,麻烦回复一下,程序是读取SD卡数据的时出现的
|
|