我正在尝试使用DMA在SPI中传输数据,因为我的Hal状态是HAL_SPI_STATUS_BUSY_TX。所需状态为HAL_SPI_STATE_READY。我想通过SPI发送一些批量数据和命令(单字节)。是否可以分别在DMA和非DMA模式之间切换。如图中所示,它在while中循环。
"notes": {
".read": "
auth.uid !== null //&&
",
"$note_id": {
".write": "
//New data
!data.exists() && auth.uid !== null ||
//Existing data
data.child('access').child('author').val() === auth.uid ||
data.child('access/members').child(auth.uid).exists()
",
"data": { .. },
"access": {
"author" : { .. },
"members" : { .. }
}
}
}
HAL_STATUS必须为HAL_SPI_STATE_READY。
启用SPI后,NDTR = 0x00
答案 0 :(得分:0)
可能导致这种问题的一个原因是将存储要发送的数据的变量放置在错误的RAM区域中,检查您的映射文件并修改链接器脚本
您可以在这里找到更多 https://community.st.com/s/article/FAQ-DMA-is-not-working-on-STM32H7-devices
答案 1 :(得分:0)
我将TX DMA流从DAM1_Stream7更改为DMA1_Stream2,解决了。不知道根本原因为何不能在stream7上工作。