реклама на сайте
подробности

 
 
> libopencm3 + stm32f4 + CAN, CAN на забытой всеми библиотеке
Ekka
сообщение May 29 2018, 13:21
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Привет всем!

Ребята, помогите, пожалуйста разобраться, что не так.
Пытаюсь запустить CAN в нормальном режиме ( в loopback работает)
на stm32f4 в среде CodeBlock на библиотеке libopencm3 (ибо именно оно и надо - хотя оч ненависто)

После того, как использует все ящики - зависает.
Почему данные не уходят из почтовых ящиков?
Второе устройство на шине имеется.
Может я не сбрасываю какой-то флаг? Или неправильно настройки?

Инициализация
CODE
uint32_t _canConfig(uint32_t bitrate)
{
int prescaler = 0;
switch(bitrate)
{
case 500:
prescaler = 2; //500kb/s=2000ns
break;

case 250:
prescaler = 4; //250kb/s=4000ns
break;

case 125:
prescaler = 8; //125kb/s=8000ns
break;

case 100:
prescaler = 10; //100kb/s=10000ns
break;

case 50:
prescaler = 20; //50kb/s=20000ns
break;

case 20:
prescaler = 50; //20kb/s=50000ns
break;

case 10:
prescaler = 100; //10kb/s=100000ns
break;

default:
prescaler = 2; //500kb/s=2000ns
break;

}

//CANRX поставлено nopull по аналогии с халом
rcc_periph_clock_enable(CAN_RX_PERIPH);
gpio_mode_setup(CAN_RX_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, CAN_RX_PIN);
gpio_set(CAN_RX_PORT, CAN_RX_PIN);

//CANTX
rcc_periph_clock_enable(CAN_TX_PERIPH);
gpio_mode_setup(CAN_TX_PORT, GPIO_MODE_AF|GPIO_OSPEED_50MHZ, GPIO_OTYPE_PP, CAN_TX_PIN);

//CANmodul
rcc_periph_clock_enable(CAN_PERIPH);
nvic_enable_irq(NVIC_CAN1_RX0_IRQ);
nvic_set_priority(NVIC_CAN1_RX0_IRQ, 1);

can_reset(CAN_NUM);
if(can_init(CAN1,
false, //TTCM: Time triggered comm mode?
false, //ABOM: Automatic bus-off management?
false, //AWUM: Automatic wakeup mode?
false, //NART: No automatic retransmission?
false, //RFLM: Receive FIFO locked mode?
false, //TXFP: Transmit FIFO priority?
CAN_BTR_SJW_1TQ,
CAN_BTR_TS1_9TQ,
CAN_BTR_TS2_6TQ,
prescaler, //BRP+1: Baud rate prescaler
false, //LOOPBACK?
false) == 1) //SILENT?
{
return 1;
}

//CAN filter 0 init
can_filter_id_mask_32bit_init(
0, // Filter ID - принимать все
0, // CAN ID
0, // CAN ID mask
0, // FIFO assignment (here: FIFO0)
true); // Enable the filter

//Enable CAN RX interrupt
can_enable_irq(CAN1, CAN_IER_FMPIE0);


Прерывание на получение данных мне пока не нужно, но вот
Код
void can1_rx0_isr(void)
{
    can_fifo_release(CAN1, 0);
}


и в мейне отправка по-тупому
Код
while (1)
    {
        time++;
        if(time>1000000)
        {
            can_transmit(CAN1, 0x00, 0, 0,8, datat);
            time=0;
        }


В чем может быть проблема? Эта libopen... такая гадость... понимаю, что кейл+куб лучше
да я и не против. Но задача стоит именно на этих средствах сделать.
ХЕЛП

Сообщение отредактировал IgorKossak - May 29 2018, 18:46
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ekka   libopencm3 + stm32f4 + CAN   May 29 2018, 13:21
- - RadiatoR   Почему RX pin устанавливается как GPIO_MODE_INPUT?...   May 29 2018, 13:44
|- - Ekka   Цитата(RadiatoR @ May 29 2018, 14:44) По...   May 29 2018, 13:51
- - RadiatoR   Вообще странно. Я, конечно, не пользуюсь HAL и ope...   May 29 2018, 14:00
- - Эдди   ТС, почитайте даташит или хотя бы примеры opencm3...   May 29 2018, 16:50
|- - Ekka   Цитата(Эдди @ May 29 2018, 17:50) ТС, поч...   May 30 2018, 12:49
- - yes   сообщения не отправляются. вопрос - а есть на шине...   May 30 2018, 13:00
- - k155la3   ну, и, конечно извиняюсь, проверить как проводки п...   May 30 2018, 13:24
|- - Ekka   Цитата(k155la3 @ May 30 2018, 14:24) ну, ...   May 31 2018, 05:36
|- - Ekka   Ребята, читаю про ошибки Кана. Не пойму ошибку Stu...   May 31 2018, 12:31
- - esaulenka   https://www.kvaser.com/about-can/the-can-pr...erro...   May 31 2018, 12:49
- - yes   EWG, EVP и BOF - это уже следствия ошибок - то ест...   May 31 2018, 13:19
|- - Ekka   Пытаюсь настроить устройства одинаково. stm32f4 C...   Jun 7 2018, 11:27
|- - Ekka   Как можно избавиться от этой ошибки? С чем может б...   Jun 7 2018, 13:20
|- - esaulenka   на F407 действительно стоит кварц частотой 26 МГц?   Jun 8 2018, 13:04
|- - k155la3   Цитата(Ekka @ Jun 7 2018, 16:20) . . . дв...   Jun 9 2018, 05:07
- - yes   если есть возможность, хорошо бы посмотреть осцилл...   Jun 7 2018, 15:44
|- - Ekka   Цитата(yes @ Jun 7 2018, 15:44) если есть...   Jun 9 2018, 09:15
|- - Ekka   Сигнал на ногц RX у stm32f4 приходит такой, как н...   Jun 9 2018, 11:28
- - esaulenka   Ну и что толку с этих картиночек? Вы их самостояте...   Jun 11 2018, 08:51
|- - Ekka   Все запустилось, проблема была в том, что вывод RS...   Jun 12 2018, 06:41
|- - Ekka   мда... в кейле-то оно на хале шпарит без проблем, ...   Jun 12 2018, 08:54
|- - k155la3   Цитата(Ekka @ Jun 12 2018, 09:41) Все зап...   Jun 13 2018, 10:04
- - esaulenka   Ложит и ложит, хад такой... Очередной бесценный ...   Jun 13 2018, 07:20
|- - Ekka   Похоже, была ошибка в том, что скорость у приемник...   Jun 13 2018, 12:37
- - k155la3   Не полагайтесь на всякие "железобетонные...   Jun 13 2018, 17:33


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 21:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016