4556| 5
|
串口DMA接收,DMA开启后,会收到上一次残留的数据 |
10金钱
最佳答案经过大量尝试之后,找到了个方法,不过稍微有点麻烦。以下步骤和顺序缺一不可。
1.首先在串口初始化的时候,CR3的OVRDIS置1,禁用溢出检查,如果不禁用的话,就需要每次溢出后去清ORE位。
2.每次开启DMA前,先清除RXNE位,也就是读RDR寄存器,或者对RQR的RXFRQ写1。
3.如果第一步没有禁用溢出检查,则需要清除ORE位,也就是对ICR的ORECF写1。
4.重置串口CR3的DMAR位,也就是对DMAR先清0再写1。
5.最后再使能DMA,就不会接收 ...
| ||
| ||
| ||
| ||
| ||
| ||
|手机版|OpenEdv-开源电子网
( 粤ICP备12000418号-1 )
GMT+8, 2025-6-18 19:10
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网