@@ -125,7 +125,10 @@ where
125125 self . interface
126126 . cmd_with_data ( spi, Command :: DATA_ENTRY_MODE_SETTING , & [ 0x03 ] ) ?;
127127
128- self . set_lut ( spi, None )
128+ self . set_lut ( spi, None ) ?;
129+
130+ self . wait_until_idle ( ) ;
131+ Ok ( ( ) )
129132 }
130133}
131134
@@ -188,7 +191,10 @@ where
188191 fn update_frame ( & mut self , spi : & mut SPI , buffer : & [ u8 ] ) -> Result < ( ) , SPI :: Error > {
189192 self . use_full_frame ( spi) ?;
190193 self . interface
191- . cmd_with_data ( spi, Command :: WRITE_RAM , buffer)
194+ . cmd_with_data ( spi, Command :: WRITE_RAM , buffer) ?;
195+
196+ self . wait_until_idle ( ) ;
197+ Ok ( ( ) )
192198 }
193199
194200 //TODO: update description: last 3 bits will be ignored for width and x_pos
@@ -205,7 +211,10 @@ where
205211 self . set_ram_counter ( spi, x, y) ?;
206212
207213 self . interface
208- . cmd_with_data ( spi, Command :: WRITE_RAM , buffer)
214+ . cmd_with_data ( spi, Command :: WRITE_RAM , buffer) ?;
215+
216+ self . wait_until_idle ( ) ;
217+ Ok ( ( ) )
209218 }
210219
211220 fn display_frame ( & mut self , spi : & mut SPI ) -> Result < ( ) , SPI :: Error > {
@@ -230,7 +239,11 @@ where
230239 let color = self . background_color . get_byte_value ( ) ;
231240
232241 self . interface . cmd ( spi, Command :: WRITE_RAM ) ?;
233- self . interface . data_x_times ( spi, color, WIDTH / 8 * HEIGHT )
242+ self . interface
243+ . data_x_times ( spi, color, WIDTH / 8 * HEIGHT ) ?;
244+
245+ self . wait_until_idle ( ) ;
246+ Ok ( ( ) )
234247 }
235248
236249 fn set_background_color ( & mut self , background_color : Color ) {
@@ -309,7 +322,10 @@ where
309322 end_y as u8 ,
310323 ( end_y >> 8 ) as u8 ,
311324 ] ,
312- )
325+ ) ?;
326+
327+ self . wait_until_idle ( ) ;
328+ Ok ( ( ) )
313329 }
314330
315331 pub ( crate ) fn set_ram_counter (
@@ -336,8 +352,12 @@ where
336352
337353 fn set_lut_helper ( & mut self , spi : & mut SPI , buffer : & [ u8 ] ) -> Result < ( ) , SPI :: Error > {
338354 assert ! ( buffer. len( ) == 30 ) ;
355+
339356 self . interface
340- . cmd_with_data ( spi, Command :: WRITE_LUT_REGISTER , buffer)
357+ . cmd_with_data ( spi, Command :: WRITE_LUT_REGISTER , buffer) ?;
358+
359+ self . wait_until_idle ( ) ;
360+ Ok ( ( ) )
341361 }
342362}
343363
0 commit comments