@@ -650,7 +650,7 @@ macro_rules! serialdma {
650
650
651
651
impl Rx <$USARTX> {
652
652
pub fn with_dma( self , channel: $dmarxch) -> $rxdma {
653
- unsafe { ( * $USARTX:: ptr( ) ) . cr3. write ( | w| w. dmar( ) . set_bit( ) ) ; }
653
+ unsafe { ( * $USARTX:: ptr( ) ) . cr3. modify ( |_ , w| w. dmar( ) . set_bit( ) ) ; }
654
654
RxDma {
655
655
payload: self ,
656
656
channel,
@@ -660,7 +660,7 @@ macro_rules! serialdma {
660
660
661
661
impl Tx <$USARTX> {
662
662
pub fn with_dma( self , channel: $dmatxch) -> $txdma {
663
- unsafe { ( * $USARTX:: ptr( ) ) . cr3. write ( | w| w. dmat( ) . set_bit( ) ) ; }
663
+ unsafe { ( * $USARTX:: ptr( ) ) . cr3. modify ( |_ , w| w. dmat( ) . set_bit( ) ) ; }
664
664
TxDma {
665
665
payload: self ,
666
666
channel,
@@ -675,7 +675,7 @@ macro_rules! serialdma {
675
675
}
676
676
pub fn release( mut self ) -> ( Rx <$USARTX>, $dmarxch) {
677
677
self . stop( ) ;
678
- unsafe { ( * $USARTX:: ptr( ) ) . cr3. write ( | w| w. dmar( ) . clear_bit( ) ) ; }
678
+ unsafe { ( * $USARTX:: ptr( ) ) . cr3. modify ( |_ , w| w. dmar( ) . clear_bit( ) ) ; }
679
679
let RxDma { payload, channel} = self ;
680
680
(
681
681
payload,
@@ -691,7 +691,7 @@ macro_rules! serialdma {
691
691
}
692
692
pub fn release( mut self ) -> ( Tx <$USARTX>, $dmatxch) {
693
693
self . stop( ) ;
694
- unsafe { ( * $USARTX:: ptr( ) ) . cr3. write ( | w| w. dmat( ) . clear_bit( ) ) ; }
694
+ unsafe { ( * $USARTX:: ptr( ) ) . cr3. modify ( |_ , w| w. dmat( ) . clear_bit( ) ) ; }
695
695
let TxDma { payload, channel} = self ;
696
696
(
697
697
payload,
0 commit comments