Browse Source

correct stm32f10x can sendmsg rtr flag error

Aubr.Cool 9 years ago
parent
commit
b2d55d2c8c
1 changed files with 3 additions and 3 deletions
  1. 3 3
      bsp/stm32f10x/drivers/bxcan.c

+ 3 - 3
bsp/stm32f10x/drivers/bxcan.c

@@ -1185,14 +1185,14 @@ static int sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t boxno
     {
     {
         assert_param(IS_CAN_STDID(pmsg->id));
         assert_param(IS_CAN_STDID(pmsg->id));
         pbxcan->sTxMailBox[boxno].TIR |= ((pmsg->id << 21) | \
         pbxcan->sTxMailBox[boxno].TIR |= ((pmsg->id << 21) | \
-                                          pmsg->rtr);
+                                          (pmsg->rtr << 1));
     }
     }
     else
     else
     {
     {
         assert_param(IS_CAN_EXTID(pmsg->id));
         assert_param(IS_CAN_EXTID(pmsg->id));
         pbxcan->sTxMailBox[boxno].TIR |= ((pmsg->id << 3) | \
         pbxcan->sTxMailBox[boxno].TIR |= ((pmsg->id << 3) | \
-                                          pmsg->ide << 2 | \
-                                          pmsg->rtr);
+                                          (pmsg->ide << 2) | \
+                                          (pmsg->rtr << 1));
     }
     }
 
 
     pmsg->len &= (uint8_t)0x0000000F;
     pmsg->len &= (uint8_t)0x0000000F;