# Reg in k210_pac::generic - Rust
This structure provides volatile access to registers.
Keywords: rust, rustlang, rust-lang, Reg

# Struct k210_pac::generic::Reg

source · [−]

    pub struct Reg<U, REG> { /* private fields */ }

Expand description

This structure provides volatile access to registers.

## Implementations

source

### impl<U, REG> Reg<U, REG> where
Self: Readable,
U: Copy,

source

#### pub fn read(&self) -> R<U, Self>

Reads the contents of a `Readable` register.

You can read the raw contents of a register by using `bits`:

ⓘ

    let bits = periph.reg.read().bits();

or get the content of a particular field of a register:

ⓘ

    let reader = periph.reg.read();
    let bits = reader.field1().bits();
    let flag = reader.field2().bit_is_set();

source

### impl<U, REG> Reg<U, REG> where
Self: ResetValue<Type = U> + Writable,
U: Copy,

source

#### pub fn reset(&self)

Writes the reset value to `Writable` register.

Resets the register to its initial state.

source

### impl<U, REG> Reg<U, REG> where
Self: ResetValue<Type = U> + Writable,
U: Copy,

source

#### pub fn write<F>(&self, f: F) where
F: FnOnce(&mut W<U, Self>) -> &mut W<U, Self>,

Writes bits to a `Writable` register.

You can write raw bits into a register:

ⓘ

    periph.reg.write(|w| unsafe { w.bits(rawbits) });

or write only the fields you need:

ⓘ

    periph.reg.write(|w| w
        .field1().bits(newfield1bits)
        .field2().set_bit()
        .field3().variant(VARIANT)
    );

In the latter case, other fields will be set to their reset value.

source

### impl<U, REG> Reg<U, REG> where
Self: Writable,
U: Copy + Default,

source

#### pub fn write_with_zero<F>(&self, f: F) where
F: FnOnce(&mut W<U, Self>) -> &mut W<U, Self>,

Writes 0 to a `Writable` register.

Similar to `write`, but unused bits will contain 0.

source

### impl<U, REG> Reg<U, REG> where
Self: Readable + Writable,
U: Copy,

source

#### pub fn modify<F>(&self, f: F) where
for<'w> F: FnOnce(&R<U, Self>, &'w mut W<U, Self>) -> &'w mut W<U, Self>,

Modifies the contents of the register by reading and then writing it.

E.g. to do a read-modify-write sequence to change parts of a register:

ⓘ

    periph.reg.modify(|r, w| unsafe { w.bits(
       r.bits() | 3
    ) });

or

ⓘ

    periph.reg.modify(|_, w| w
        .field1().bits(newfield1bits)
        .field2().set_bit()
        .field3().variant(VARIANT)
    );

Other fields will have the value they had before the call to `modify`.

## Trait Implementations

source

### impl<U: Send, REG> Send for Reg<U, REG>

## Auto Trait Implementations

### impl<U, REG> !RefUnwindSafe for Reg<U, REG>

### impl<U, REG> !Sync for Reg<U, REG>

### impl<U, REG> Unpin for Reg<U, REG> where
REG: Unpin,
U: Unpin,

### impl<U, REG> UnwindSafe for Reg<U, REG> where
REG: UnwindSafe,
U: UnwindSafe,

## Blanket Implementations

source

### impl<T> Any for T where
T: 'static + ?Sized,

source

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more

source

### impl<T> Borrow<T> for T where
T: ?Sized,

const: unstable · source

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

### impl<T> BorrowMut<T> for T where
T: ?Sized,

const: unstable · source

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more

source

### impl<T> From<T> for T

const: unstable · source

#### fn from(t: T) -> T

Returns the argument unchanged.

source

### impl<T, U> Into<U> for T where
U: From<T>,

const: unstable · source

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

source

### impl<T, U> TryFrom<U> for T where
U: Into<T>,

#### type Error = Infallible

The type returned in the event of a conversion error.

const: unstable · source

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.

source

### impl<T, U> TryInto<U> for T where
U: TryFrom<T>,

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

const: unstable · source

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.