Kenny2208
Feb 24 2014, 17:33
Здравствуйте! Отправляю сообщения по интерфейсу CAN в режиме CAN_Mode_Normal , проверяю статус сообщения функцией CAN_TransmitStatus.
Функция всегда возвращает статус сообщения - CAN_TxStatus_Pending. и сообщение не доходит до другой платы. Даже с ножек на осциллографе нет сигналов. В режиме CAN_Mode_Loopback всё работает, кадр сразу ловит прерывание. Подскажите пожалуйста, в чем может быть проблема.
adnega
Feb 24 2014, 19:57
Вывод порта в AF режиме (в режиме альтернативной функции)?
Kenny2208
Feb 25 2014, 06:33
/* Configure CAN1 RX pin */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure CAN1 TX pin */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Remap CAN1 GPIOs */
GPIO_PinRemapConfig(GPIO_Remap2_CAN1 , ENABLE);
adnega
Feb 25 2014, 15:49
Я в StdLib не силен, но в UM написано для CAN1 на PA11 и PA12 CAN_REMAP="00".
Вы уверены, что GPIO_Remap2_CAN1 не выставляет CAN_REMAP="10" (т.е. на выводы PB8 и PB9)?
Dron_Gus
Feb 26 2014, 11:52
Второе устройство на шине не в listen-only режиме? Оно подтверждает посылку?
mmmjeka
Mar 11 2014, 07:03
скорей всего нету ответного сигнала ACK (подтверждения приема)( см. стандарт САN)
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.