Jump to content
spectral1

Can + Stm32 Помогите Разобраться

Recommended Posts

Здравствуйте! Помогите пожалста начинающему. У меня отладочная плата на базе STM32f103RE Диодами помигал, прерывание по кнопке сделал, дисплей зажег. Нужно ковырять интерфейсы, до этого никогда не имел с ними дела, без подсказок мне сложно разобраться. Как работают примеры не понятноsad.gif Для начала хочу хоть что-нибудь послать по CAN.

Как я понял, посылки в CAN формируются без адреса, устройство само определяет получать ли ей посылку или отвергнуть. Сам кадр выглядит так:

Не могу понять для себя последовательность действий при формировании кадра. Сейчас я это вижу примерно так:

1) Разрешаю тактирование портов ввода-вывода, CAN, альтернативных функций порта(в моем случае)

2) Настраиваю порты ввода-вывода. Tx - выход push-pull, Rx - input with pull-up/pull-down

3) Настраиваю CAN:

-режим работы. к примеру ставлю нормал

-выставляю baudrate. в регистр нужно заносить значение в герцах в шестнадцатеричной форме?

-задаю длину посылки, выставляю RTR и IDE

-что за регистр NVIC? и почему его нет в даташите, а в примерах он настраивается:

NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX0_IRQn;

-собираю посылку и отправляю. на этом этапе тоже не понятно, посылка собирается с помощью массива? как отправить посылку? sad.gif

и еще пара вопросов по СИ:

1) void Init_RxMes(CanRxMsg *RxMessage);

в скобках перечисляются входные параметры функции, что значит звездочка? и почему запятой нет?

2) uint8_t KeyNumber = 0x0;

unit8_t - говорит о том, что число восьмибитное?

3)

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

здесь собирается структура и результат обрабатывается через NVIC_Init()? зачем тогда нужен символ "&"?

простите за глупые вопросыsmile.gif

Share this post


Link to post
Share on other sites

Со структурами и указателями разобрался, с NVIC тоже стало понятно.

Скачал пример с сайта Keil, разобрался как он работает. Но есть проблема, когда пробую в эмуляторе Keil'a отправить самому себе посылку в режиме Loop back & Silent mode - то посылку видно в исходящих, но в принятых ее почему-то нет. В чем проблема?

stm32 can keil example.zip

post-160829-0-95217100-1343290664_thumb.jpg

Edited by spectral1

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

а здесь возможна одновременная передача и прием данных?

Share this post


Link to post
Share on other sites

Высокая надежность SiC! Как они этого добились?

За несколько лет кропотливых исследований и совершенствования технологии компания Infineon смогла довести показатели надежности и стабильности параметров высоковольтных и быстродействующих карбид-кремниевых транзисторов линейки CoolSiC практически до уровня их кремниевых собратьев.

Подробнее

Материалы вебинара «STM32L5. Секреты оценки энергопотребления»

Опубликованы запись и материалы вебинара КОМПЭЛ, посвященного первому семейству МК STM32L5 на ядре Cortex-M33. На вебинаре было рассказано о самых распространенных ошибках при расчете энергопотребления микроконтроллеров и о специальном тесте ULPMark, позволяющем дать наиболее объективную оценку энергоэффективности. Измерения проводились на демонстрационной платформе STM32L562E-DK.

Подробнее

Если вы эхо свое читаете, то ответили на вопрос. Или я чего-то не допонял?)

Share this post


Link to post
Share on other sites

Снижена цена на AC/DC и DC/DC преобразователи Mornsun в Компэл!

Компэл и компания Mornsun снизили цены на преобразователи AC/DC-преобразователи семейств LS и LDE. По привлекательной цене также предлагаются DC/DC-преобразователи изолированных семейств поколений R2 и R3 различного конструктивного исполнения.

Подробнее

а разве данные одновременно передаются и принимаются? :(

я пошагово проходил программу, у меня получалось так:

1) инициализация периферии

2) ожидание готовности

3) инициализация сообщения(заполнение структуры CAN_TxMsg)

4) сборка сообщения(функция CAN_wrMsg, заполнение структуры sTxMailBox[0])

5) отправка сообщения

6) срабатывает прерывание по отправке(transmit mailbox empty(TME))

7) срабатывает прерывание по получению сообщения

8) сборка сообщения в массиве data[]

9) передача нулевого элемента массива в переменную val_Rx

и по новой.

по моему все последовательно или я где-то ошибся? подскажите пожалста

картинку прикрутил, чтобы было понятно. как бы получается, что в FIFO сообщение есть, а в принятых нет. или его там и не должно быть? )

Edited by spectral1

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Замеры на резисторах RD 1 и RD 4 как расположены на плате На LD1 напряжение со стороны ножки 2 UD1 320 милливольт, с другой стороны 280 милливольт.
    • Ещё один туда же. А почему вы все считаете, что если человек попросил помочь с ремонтом, то обязательно идиот или *****й? Посмотрите на себя лет так ...дцать назад. И я ничего не делаю без консультаций со специалистом. У меня с электроникой давно дружеские отношения, вот с инверторами только третий раз сталкиваюсь. До этого монитор отремонтировал с помощью спецов, был ещё телевизор. И не надо смотреть на других свысока! Это не культурно! Никто её не выдирал!!! Видимо не те буквы смотрели)))
    • 24 В при токе 2.5 А это 60 Вт. 27000 вольт при 60 Вт это ток один-два миллиампера. Которые имеют ток утечки выше миллиампера. Собственно, заряжать столь слабым источником не получится, что ты и получил на практике. Перематывай трансформатор на гораздо меньшее напряжение, но на гораздо больший ток, хотя бы в 30 раз!
    • Карочь ребя  , все по  фне шую ...  Холодильник в кухню , капутер  в гостинную ...  
    • Делаю зарядное устройство для электролитических конденсаторов, заряжать решил от ТДКС и схемы ZVS драйвера. Питание беру от лабораторного источника питания (выставляю около 24В и 2,5 А). Зарядить нужно блок флэш электролитов (те, что применяются в вспышке фотоаппаратов, 330В, 120 мкФ каждый) со смешанным подключением (общей емкостью 1280 мФ и напряжением 990В). Этот способ уже рассмотрен здесь: https://youtu.be/et0DtOzbB0U https://youtu.be/t7iZNVMdrU8 Подключил ТДКС к блоку - напряжение зарядки выше 60В не растёт. То есть, показание на мультиметре доходит до 60В и остаётся на месте. При этом, без нагрузки ТДКС работает стабильно, выдаёт хорошую дугу и напряжение выше киловольта. Сами конденсаторы - рабочие. Чем может быть связана такая просадка? Пробовал подключать отдельно линию из 10 параллельных конденсаторов - напряжение достигает максимум 30 В.

  • Дизайнерский встраиваемый светильник для нижней подсветки с датчиками движения и уровня освещенности

  • Similar Content

    • By xrou
      Здравствуйте, пытаюсь подключить USB флешку к STM32F767ZI
       
      Включаю USB_OTG_FS - host only, (V bus и SOF  не включаю), USB HOST Class for fs ip - Mass Storage host class, FATFS (USE_LFN - в стеке) - USB_Disk
      В настройках USB_HOST требует, как я понял, пин отвечающий за питание устройства - PC1
      Код простейший, должен работать 100% а может нет. Внутренние файлы библиотек не менял
      Думаю что нет питания на USB устройство т.к. пробовал вставить туда ttl конвертер на котором есть светодиод питания и он не горит
       
      Ваши идеи и предположения? 
       
    • By xrou
      Здравствуйте, хочу подключить джойстик к stmке, но проблема в том что он пятивольтовый, а АЦП все, что больше 3.3 выдаёт как 4095. На ардуино есть контакт aref введённый на плату, но на stm, как я понял, он соединён с контактом питания и все что выше 3.3 вольта просто спалит кристал. 
      Подскажите как подключить пятивольтовое устройство к stmке. 
       
      P.s подключить джойстик к 3.3 не получится из-за появления огромных мёртвых зон.
    • By Black Jack
      Здравствуйте, программатор st-link не видит микроконтроллер STM32F103VET6. Присоединение кварца и внешнее тактирование не помогли. Что не так делаю, подскажите.


      схема.dch плата.dip
    • By strifonoff
      это снова я...
      Максимального быстродействия АЦП можно достичь при частоте АЦП 14 МГц, а этого можно добиться только при системной частоте 56 МГц (если внешний кварц на 8 МГц).
      Но возникает проблема со скоростями UART: значение регистра BRR не получится выставить так, что бы скорость была из стандартного ряда.
      Назрели несколько вопросов:
      1) возможно ли менять системную частоту на лету? (чую, что можно, но пока не знаю как) 
      2) критична ли ошибка в скорости UART по сравнению со стандартной? (что будет на другой стороне заранее не известно, т.к. любой может воткнуть свой девайс работающий на какой-то заранее согласованной стандартной скорости)
      3) как поведёт себя железо (состояние ОЗУ, регистров перефирии, состояние ног и т.д.) на изменение частоты? Две части программы () практически независимы, их объединяет только один массив, который наполняется в первой половине, а обрабатывается в другой.
       
    • By xrou
      Здравствуйте, пытаюсь обрабатывать пакеты приходящие от ESP8266 (01), но проблема в том, что пакеты всегда разной длины ведь мы не знаем, что напишет пользователь (хотя даже ответы на AT команды всегда разной длины). Знаю, что в плате F0 есть прерывание по символу, но у меня F103C8T6. Как быть? Создать массив большого размера нельзя, т.к. HAL_Recieve_IT ждет пока не наберется нужное кол-во символов.
      Приму любую идею и советы
×
×
  • Create New...