@@ -9,7 +9,7 @@ mod app {
9
9
use embedded_hal:: spi:: { Mode , Phase , Polarity } ;
10
10
use hal:: {
11
11
dma:: {
12
- config:: DmaConfig , MemoryToPeripheral , PeripheralToMemory , Stream0 , Stream5 ,
12
+ config:: DmaConfig , DmaFlag , MemoryToPeripheral , PeripheralToMemory , Stream0 , Stream5 ,
13
13
StreamsTuple , Transfer ,
14
14
} ,
15
15
gpio:: { gpioc:: PC13 , GpioExt , Output , PushPull } ,
@@ -142,12 +142,9 @@ mod app {
142
142
let mut led = cx. shared . led ;
143
143
let rx_buffer = cx. local . rx_buffer ;
144
144
rx_transfer. lock ( |transfer| {
145
- if transfer. is_fifo_error ( ) {
146
- transfer. clear_fifo_error ( ) ;
147
- }
148
- if transfer. is_transfer_complete ( ) {
149
- transfer. clear_transfer_complete ( ) ;
150
-
145
+ let flags = transfer. flags ( ) ;
146
+ transfer. clear_flags ( DmaFlag :: FifoError | DmaFlag :: TransferComplete ) ;
147
+ if flags. is_transfer_complete ( ) {
151
148
let ( filled_buffer, _) = transfer. next_transfer ( rx_buffer. take ( ) . unwrap ( ) ) . unwrap ( ) ;
152
149
match filled_buffer[ 0 ] {
153
150
1 => led. lock ( |led| led. set_low ( ) ) ,
@@ -164,11 +161,9 @@ mod app {
164
161
let mut tx_transfer = cx. shared . tx_transfer ;
165
162
let tx_buffer = cx. local . tx_buffer ;
166
163
tx_transfer. lock ( |transfer| {
167
- if transfer. is_fifo_error ( ) {
168
- transfer. clear_fifo_error ( ) ;
169
- }
170
- if transfer. is_transfer_complete ( ) {
171
- transfer. clear_transfer_complete ( ) ;
164
+ let flags = transfer. flags ( ) ;
165
+ transfer. clear_flags ( DmaFlag :: FifoError | DmaFlag :: TransferComplete ) ;
166
+ if flags. is_transfer_complete ( ) {
172
167
let ( filled_buffer, _) = transfer. next_transfer ( tx_buffer. take ( ) . unwrap ( ) ) . unwrap ( ) ;
173
168
* tx_buffer = Some ( filled_buffer) ;
174
169
}
0 commit comments