paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [5346] now read SPI->DR and SPI-> SR before setting


From: antoine drouin
Subject: [paparazzi-commits] [5346] now read SPI->DR and SPI-> SR before setting up the DMA transfert in order to clear any existing error flag
Date: Thu, 12 Aug 2010 19:21:40 +0000

Revision: 5346
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5346
Author:   poine
Date:     2010-08-12 19:21:39 +0000 (Thu, 12 Aug 2010)
Log Message:
-----------
now read SPI->DR and SPI->SR before setting up the DMA transfert in order to 
clear any existing error flag

Modified Paths:
--------------
    paparazzi3/trunk/sw/airborne/lisa/arch/stm32/lisa_overo_link_arch.c

Modified: paparazzi3/trunk/sw/airborne/lisa/arch/stm32/lisa_overo_link_arch.c
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/arch/stm32/lisa_overo_link_arch.c 
2010-08-12 18:47:03 UTC (rev 5345)
+++ paparazzi3/trunk/sw/airborne/lisa/arch/stm32/lisa_overo_link_arch.c 
2010-08-12 19:21:39 UTC (rev 5346)
@@ -55,7 +55,15 @@
 
 
 void overo_link_arch_prepare_next_transfert(void) {
+  
+  /* Disable SPI module */
+  SPI_Cmd(SPI1, DISABLE); 
 
+  /* Make sure RX register is empty */
+  uint8_t foo __attribute__ ((unused)) = SPI1->DR;
+  /* Read status register to clear OVR, UDR, MODF flags */
+  foo = SPI1->SR;
+
   /* SPI_SLAVE_Rx_DMA_Channel configuration 
------------------------------------*/
   DMA_DeInit(DMA1_Channel2);
   const DMA_InitTypeDef  DMA_InitStructure_rx = {
@@ -103,9 +111,10 @@
   DMA_ITConfig(DMA1_Channel2, DMA_IT_TC, ENABLE);
   
   /* resets CRC module */
-  SPI_Cmd(SPI1, DISABLE); 
   SPI_CalculateCRC(SPI1, DISABLE); 
   SPI_CalculateCRC(SPI1, ENABLE); 
+
+  /* enable SPI */
   SPI_Cmd(SPI1, ENABLE);
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]