你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
yllqabz 发表于 2019-5-17 16:43 既然要收要发,为何不全双工?操作起来不是更方便吗?
评分
查看全部评分
外挂芯片,接收和发送在一个脚上。不支持全双工
这里是我的发送的函数
// LL_SPI_Disable(SPI2);// 清除多余的CLK 以防止下次CLK错误
LL_DMA_DisableChannel(DMA1,5);
DMA1_Channel5->CMAR = (u32)TM1620B_fifo.data[TM1620B_fifo.rear].add;
DMA1_Channel5->CNDTR = TM1620B_fifo.data[TM1620B_fifo.rear].len;
SPI2_CS_L();
SET_BIT(SPI2->CR1, LL_SPI_HALF_DUPLEX_TX);
// LL_SPI_Enable(SPI2);
LL_DMA_EnableChannel(DMA1,5);//发送时要先设SPI为发送再开DMA传数据
重新打开或关闭都不能让SPI 的移位寄存器和时钟计数器复位导致下一次SPI传输错误。
上面的现像不是100% 存在的,有时候可能是赶巧SPI发送的时钟是正确的。
但是我感觉这应该是stm32 SPI的一个BUG
评分
查看全部评分
评分
查看全部评分