NewSistems Опубликовано 20 ноября, 2015 Жалоба Поделиться Опубликовано 20 ноября, 2015 Пытался настроить CAN для связи с устройством, для конфигурации CAN_BTR использовал онлайн калькулятор. После компиляции сразу было ясно что связи по CAN нет, при анализе сигнала видно что чистота пакетов из STM в пять раз ниже чем чистота из устройства. Может кто то помочь настроить инициализацию CAN через регистры. Камень STM32F407AVG Частота проца: 168 mHz; Необходимая скорость CAN: 500kBs Пины PB12, PB13. На данный момент функция инициализации выглядит так: void CAN_Init (void) { RCC->APB1ENR |= RCC_APB1ENR_CAN2EN; // enable clock for CAN2 GPIOB->MODER |= (0 << 24); //PB12 IN GPIOB->MODER |= (2 << 26); //PB13 OUT GPIOB->OTYPER |= (0 << 12); //OTYPE PUSH-PULL GPIOB->OTYPER |= (0 << 13); //OTYPE PUSH-PULL GPIOB->PUPDR |= (0 << 24); //PushUP-PushDOWN NO PP GPIOB->PUPDR |= (0 << 26); //PushUP-PushDOWN NO PP GPIOB->OSPEEDR |= (2 << 24); //PIN SPEED FAST GPIOB->OSPEEDR |= (2 << 26); //PIN SPEED FAST GPIOB->AFR[1] |= (9 << 20); //AlternateFunction AF9(CAN) GPIOB->AFR[1] |= (9 << 24); //AlternateFunction AF9(CAN) CAN2->MCR = (CAN_MCR_NART | CAN_MCR_INRQ); // init mode, disable auto. retransmission // Note: only FIFO 0, transmit mailbox 0 used CAN2->IER = (CAN_IER_FMPIE0 | CAN_IER_TMEIE); // FIFO 0 msg pending, Transmit mbx empty CAN2->BTR = 0x001c0014; } Настройки камня: /** * @brief System Clock Configuration * The system Clock is configured as follow : * System Clock source = PLL (HSE) * SYSCLK(Hz) = 168000000 * HCLK(Hz) = 168000000 * AHB Prescaler = 1 * APB1 Prescaler = 4 * APB2 Prescaler = 2 * HSE Frequency(Hz) = HSE_VALUE * PLL_M = (HSE_VALUE/1000000u) * PLL_N = 336 * PLL_P = 2 * PLL_Q = 7 * VDD(V) = 3.3 * Main regulator output voltage = Scale1 mode * Flash Latency(WS) = 5 * @param None * @retval None */ Раздел: STM32 Читать дальше Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.