В проекте проинициализировано motorcontroldemoDisona писал(а): ↑01 сен 2021, 12:36Здравствуйте.porsche2492 писал(а): ↑31 авг 2021, 20:48 Конфигурация ножек:Код: Выделить всё
//Конфигурация пинов для модуля CAN1 GPIOH->ALTFUNCNUM1_bit.PIN14 = 3; // CAN1_TX GPIOH->ALTFUNCNUM1_bit.PIN15 = 3; // CAN1_RX GPIOH->ALTFUNCSET =GPIO_PIN_14 | GPIO_PIN_15; //Конфигурация пинов для модуля CAN0 GPIOС->ALTFUNCNUM1_bit.PIN12 = 1; // CAN0_TX GPIOС->ALTFUNCNUM1_bit.PIN13 = 1; // CAN0_RX GPIOС->ALTFUNCSET =GPIO_PIN_12 | GPIO_PIN_13;
Пока не очень понимаем, в чём причина, но в приведённом коде кое-что не сходится.
Вроде как выходит, что неправильно натсроен именно CAN1:
для ножек C14 и C15 номер CAN-функции - это 1, а не 3.
А вот для CAN0, вроде, всё настроено верно.
Вы не могли в своём проекте выставить C14 и C15 в "1" и проверить, не заработал ли CAN0?
Может быть, какая-то путанница с нумерациями CAN-ов?
У нас в примере MotorControlDemo сделано так:
Код: Выделить всё
#ifdef CAN_1_ENABLE // CAN0: C12 / C13 GPIOC->ALTFUNCNUM1_bit.PIN12 = 1; // CAN0_TX GPIOC->ALTFUNCNUM1_bit.PIN13 = 1; // CAN0_RX GPIOC->ALTFUNCSET = GPIO_PIN_12 | GPIO_PIN_13; #endif #ifdef CAN_2_ENABLE // CAN1: C14 / C15 GPIOC->ALTFUNCNUM1_bit.PIN14 = 1; // CAN1_TX GPIOC->ALTFUNCNUM1_bit.PIN15 = 1; // CAN1_RX GPIOC->ALTFUNCSET = GPIO_PIN_14 | GPIO_PIN_15; #endif
Вот так
Код: Выделить всё
ifdef CAN_1_ENABLE
// CAN0: C12 / C13
GPIOC->ALTFUNCNUM1_bit.PIN12 = 1; // CAN0_TX
GPIOC->ALTFUNCNUM1_bit.PIN13 = 1; // CAN0_RX
GPIOC->ALTFUNCSET = GPIO_PIN_12 | GPIO_PIN_13;
#endif
#ifdef CAN_2_ENABLE
// CAN1: H14 / H15
GPIOH->ALTFUNCNUM1_bit.PIN14 = 3; // CAN1_TX
GPIOH->ALTFUNCNUM1_bit.PIN15 = 3; // CAN1_RX
GPIOH->ALTFUNCSET = GPIO_PIN_14 | GPIO_PIN_15;
#endif
У меня работает can0 и can1 видеться в программе Unicon. Но при своей инициализации не видиться can0.