mbed library sources. Supersedes mbed-src. removed serial

Fork of mbed-dev by mbed official

Revision:
156:95d6b41a828b
Parent:
150:02e0a0aed4ec
--- a/targets/TARGET_STM/TARGET_STM32F0/can_api.c	Thu Jan 05 10:51:54 2017 +0000
+++ b/targets/TARGET_STM/TARGET_STM32F0/can_api.c	Mon Jan 16 15:03:32 2017 +0000
@@ -235,6 +235,12 @@
 
     CAN_TypeDef *can = (CAN_TypeDef *)(obj->can);    
     
+    // check FPM0 which holds the pending message count in FIFO 0
+    // if no message is pending, return 0
+    if ((can->RF0R & CAN_RF0R_FMP0) == 0) {
+        return 0;
+    }
+
     /* Get the Id */
     msg->format = (CANFormat)((uint8_t)0x04 & can->sFIFOMailBox[handle].RIR);
     if (!msg->format) {
@@ -261,10 +267,10 @@
     /* Release the FIFO */
     if (handle == CAN_FIFO0) {
         /* Release FIFO0 */
-        can->RF0R = CAN_RF0R_RFOM0;
+        can->RF0R |= CAN_RF0R_RFOM0;
     } else { /* FIFONumber == CAN_FIFO1 */
       /* Release FIFO1 */
-      can->RF1R = CAN_RF1R_RFOM1;
+      can->RF1R |= CAN_RF1R_RFOM1;
     }
 
     return 1;