* The ISR should look something like this: ```rust static READ_BUF: Mutex> = Mutex::new(RefCell::new([0;10])); static READ_I: Mutex> = Mutex::new(Cell::new(0)); // .. #[interrupt] /// Async USART read interrupt handler fn USART1() { unsafe{ (*pac::USART1::ptr()).rqr.modify(|_, w| w.rxfrq().set_bit() } free(|cs| { let mut buf = READ_BUF.borrow(cs).borrow_mut(); let i = READ_I.borrow(cs); // Could put USART struct in a mutex too. buf[i.get()] = unsafe{ (*pac::USART1::ptr()).dr.read().dr().bits() as u8; } i.set(i.get() + 1); }); ```