소스 검색

correct stm32f10x can sendmsg rtr flag error

Aubr.Cool 9 년 전
부모
커밋
b2d55d2c8c
1개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  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));
         pbxcan->sTxMailBox[boxno].TIR |= ((pmsg->id << 21) | \
-                                          pmsg->rtr);
+                                          (pmsg->rtr << 1));
     }
     else
     {
         assert_param(IS_CAN_EXTID(pmsg->id));
         pbxcan->sTxMailBox[boxno].TIR |= ((pmsg->id << 3) | \
-                                          pmsg->ide << 2 | \
-                                          pmsg->rtr);
+                                          (pmsg->ide << 2) | \
+                                          (pmsg->rtr << 1));
     }
 
     pmsg->len &= (uint8_t)0x0000000F;