@@ -9,7 +9,7 @@ mod app {
99 use embedded_hal:: spi:: { Mode , Phase , Polarity } ;
1010 use hal:: {
1111 dma:: {
12- config:: DmaConfig , MemoryToPeripheral , PeripheralToMemory , Stream0 , Stream5 ,
12+ config:: DmaConfig , DmaFlag , MemoryToPeripheral , PeripheralToMemory , Stream0 , Stream5 ,
1313 StreamsTuple , Transfer ,
1414 } ,
1515 gpio:: { gpioc:: PC13 , GpioExt , Output , PushPull } ,
@@ -142,12 +142,9 @@ mod app {
142142 let mut led = cx. shared . led ;
143143 let rx_buffer = cx. local . rx_buffer ;
144144 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 ( ) {
151148 let ( filled_buffer, _) = transfer. next_transfer ( rx_buffer. take ( ) . unwrap ( ) ) . unwrap ( ) ;
152149 match filled_buffer[ 0 ] {
153150 1 => led. lock ( |led| led. set_low ( ) ) ,
@@ -164,11 +161,9 @@ mod app {
164161 let mut tx_transfer = cx. shared . tx_transfer ;
165162 let tx_buffer = cx. local . tx_buffer ;
166163 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 ( ) {
172167 let ( filled_buffer, _) = transfer. next_transfer ( tx_buffer. take ( ) . unwrap ( ) ) . unwrap ( ) ;
173168 * tx_buffer = Some ( filled_buffer) ;
174169 }
0 commit comments