unsafe fn new_from_data_registers(
        id: impl Into<Id>,
        registers: *const u32,
        dlc: usize,
    ) -> Self {
        let mut data: [u8; 8] = [0; 8];

        // Copy the data from the memory mapped peripheral into actual memory.
        unsafe {
            copy_from_data_register(&mut data[..dlc], registers);
        }

        Self {
            id: id.into(),
            data,
            dlc,
            is_remote: false,
            self_reception: false,
        }
    }
Make a new frame from an id, pointer to the TWAI_DATA_x_REG registers,
and the length of the data payload (dlc).

# Safety
This is unsafe because it directly accesses peripheral registers.
esp-hal/src/twai/mod.rs