Доброй ночи уважаемые форумчане. Уже третий день мучаюсь с Кэном... не работает передача .
Использую CAN1. Задача: реализовать UART <> CAN bridge .
При выводе использую отладочный вывод в юарт.
Получаю такое:
CAN1->MSR=0xC0C; CAN1->MCR=0x10020; CAN1->TSR=0x19000008; CAN1->ESR=0xF80057;
CAN1 STATUS=0x03; // функция HAL_StatusTypeDef HAL_CAN_Transmit(CAN_HandleTypeDef* hcan, uint32_t Timeout) возвращает HAL_OK
Код
uint32_t status = HAL_CAN_Transmit(&hcan1, 10);
sprintf(buffer_, " CAN1 STATUS=0x%X " , status);
Usart2_Send_String(buffer_);
Usart2_Send_String(rx_buffer2);
Usart2_Send_String("CAN Send\r");
data[0] = CAN1->MSR;
data[1] = CAN1->MCR;
data[2] = CAN1->TSR;
data[3] = CAN1->ESR;
sprintf(buffer_, " CAN1->MSR=0x%X CAN1->MCR=0x%X CAN1->TSR=0x%X CAN1->ESR=0x%X" , data[0], data[1], data[2], data[3]);
Usart2_Send_String(buffer_);
Какое значение должна функция возвращать , при успешном выполнении ?
Использую CubeMX как генератор начальной конфигурации.
Пытаюсь осциллографом увидеть импульсы на TX CAN1 , но их я не вижу. В чем может быть проблема?
Буду очень благодарен за помощь чайнику
Сообщение отредактировал Artos5 - Sep 20 2015, 21:24
Эскизы прикрепленных изображений