NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2787 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 2 از 2

موضوع: مشکل در دریافت داده از can

  1. #1
    عضو جدید
    تاریخ عضویت
    Jul 2011
    نوشته ها
    5
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض مشکل در دریافت داده از can

    با سلام
    دوستان کسی با CAN کار کرده؟
    من وقتی که تو مود LoopBack هست اینتراپت RX فعال میشه واسم ولی وقتی که خارجی دو تا پایه رو به هم وصل میکنم هیچ اتفاقی نمیفته
    اینم بگم خارچی دو تا پایه رو مستقیم به هم وصل نمیکنم دیود و مقاومت پول اپ رو میذارم
    البته من با دو تا برد هم تست کردم که روشون ای سی کن باشه ولی باز هم جواب نداد
    بردم هم برد RedBull فروشگاهه دوتا ازش رو خریدم ولی جواب نمیده
    کد هم خود مثال ST هست
    اینم تابع کانفیگ کن:

    کد:
    void CAN_Config(void){
      GPIO_InitTypeDef  GPIO_InitStructure;
      
      /* GPIO clock enable */
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO |RCC_APB2Periph_GPIO_CAN, ENABLE);
      
      /* Configure CAN pin: RX */
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_CAN_RX;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
      GPIO_Init(GPIO_CAN, &GPIO_InitStructure);
      
      /* Configure CAN pin: TX */
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_CAN_TX;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_Init(GPIO_CAN, &GPIO_InitStructure);
      
    //  GPIO_PinRemapConfig(GPIO_Remap_CAN , ENABLE);
      
      /* CAN1 Periph clock enable */
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
      
      
      /* CAN register init */
      CAN_DeInit(CAN1);
      CAN_StructInit(&CAN_InitStructure);
    
    
      /* CAN cell init */
      CAN_InitStructure.CAN_TTCM = DISABLE;
      CAN_InitStructure.CAN_ABOM = DISABLE;
      CAN_InitStructure.CAN_AWUM = DISABLE;
      CAN_InitStructure.CAN_NART = DISABLE;
      CAN_InitStructure.CAN_RFLM = DISABLE;
      CAN_InitStructure.CAN_TXFP = DISABLE;
      CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;//;CAN_Mode_LoopBack;//
      CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
      CAN_InitStructure.CAN_BS1 = CAN_BS1_3tq;
      CAN_InitStructure.CAN_BS2 = CAN_BS2_5tq;
      CAN_InitStructure.CAN_Prescaler = 4;
      CAN_Init(CAN1, &CAN_InitStructure);
      
      /** bit rate = 36MHz/(1tq + 3tq + 5tq)/4 = 36MHz/36= 1MHz */
      /* CAN filter init */
      CAN_FilterInitStructure.CAN_FilterNumber = 0; /* change it to 14!!! */
      CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
      CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
      CAN_FilterInitStructure.CAN_FilterIdHigh = 0xffff;
      CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;
      CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
      CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
      CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;
      CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
      CAN_FilterInit(&CAN_FilterInitStructure);
      
      /* Transmit */
      TxMessage.StdId =1;// 0x321;
      TxMessage.ExtId = 0x01;
      TxMessage.RTR = CAN_RTR_DATA;
      TxMessage.IDE = CAN_ID_STD;
      TxMessage.DLC = 8;
    }

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    عضو جدید
    تاریخ عضویت
    Sep 2012
    نوشته ها
    18
    تشکر
    5
    تشکر شده 1 بار در 1 پست

    پیش فرض

    سلام
    بیشتر توضیح بدین
    اگر پایه های tx وrx منظورتون هست
    باید بگم با ابن کار شما هیچی نباد دریافت کنید دوست عزیز

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •