ivpoed

С чего лучше начать по stm32 при переходе с Ардуино

37 сообщений в этой теме

ivpoed    1

Здравствуйте

Посоветуйте, с чего лучше начать при переходе с Arduino на STM32?

Есть желание проектировать несложные устройства и выпускать их. С STM32 до этого дела не имел, в Ардуино собаку съел.

Хочется побольше готовых библиотек + удобную отладочную (discovery? nucleo?) + удобную IDE.

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andras    18

Я бы посоветовал KEIL uVision5+STM32Cube(как предварительный настройщик периферии и портов), ну и изучение Си и написание простых библиотечек для себя, ибо на дуине все попрятано и перегружено избыточным кодом.

Плата, подойдет любая, я взял самую дешевую на stm32f103c8t6( на али полно), и обязательно отладчик-программатор   ST Link, на все про все рублей 300 хватит.

По урокам, на ютюбе смотри товарища narod stream.

Вот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

@ivpoed  https://www.chipdip.ru/product/stm32f0discovery стоит косарь, программатор на борту. 

По предыдущим постам - куб - это хорошо, но хотя бы прочитать про регистры и управление на низком уровне надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andras    18

ST Link V2, вот такого плана мне предостаточно

вот такой

Прошивка, питание от USB и пошаговая онлайн отладка есть, больше ничего и не требуется.

цена рублей 130 на али

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
andryxa    228

Дорого, возьмите для начала что-то типа такого https://arduino-ua.com/prod1328-plata-razrabotchika-stm32f103c8t6-arm-stm32-minimalnaya-konfigyraciya Не дорогой,и контроллер на плате стоит популярный, под который масса примеров и проектов в сети.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    12
Цитата

Есть желание проектировать несложные устройства и выпускать их. С STM32 до этого дела не имел, в Ардуино собаку съел.

Забыть о своем "плодотворном опыте" на аурдунье раз и навсегда.

Прерогатива, как аурдуньи в частности так и  avr в общем - в софтовом ногодрыге , в то время как STM32  позволяет создавать недорогие полностью аппаратные решения.

И для этого не нужны готовые библиотеки. И тем более кухаркины статьи, подобные "товарища narod stream" , что учат сами ни черта не зная и не умея.

Как и писал здесь ранее - для квик старта достаточно иметь F0 в TSSOP20 корпусе , плату адаптер TSSOP -DIP.

Для более комфортного вхождения нужен JLINK , который можно самостоятельно изготовить из F103 или F072 или любого набортного STLink v2 или китайского огрызка STlink v2 . Так же крайне желательно иметь логический анализатор.

В любом случае крайне  желательно изучение английского языка и документации от производителя.

Использование калокуба и SPL при изучении сведет на нет всю прелесть STM32 и в итоге получится та же самая ардунья... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Electric_84    24
В ‎17‎.‎04‎.‎2017 в 07:20, dosikus сказал:

Использование калокуба и SPL при изучении сведет на нет всю прелесть STM32

а что посоветуете вместо "калокуба и SPL"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
E_C_C    75
В 17.04.2017 в 14:20, dosikus сказал:

Как и писал здесь ранее - для квик старта достаточно иметь F0 в TSSOP20 корпусе , плату адаптер TSSOP -DIP

так еще же нужен программатор ?  или я что то не понимаю ?

В 17.04.2017 в 14:20, dosikus сказал:

STM32  позволяет создавать недорогие полностью аппаратные решения.

тоже несколько непонятно , получается что можно выполнять несколько задач независимо от основной программы ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    12

E_C_C, для STM32 программатор как таковой  не нужен , большинство имеют встроенный бутлоадер через UART .

  А F0x2 имеют встроенный бутлоадер DFU к тому же crystall less, так что соединяем по USB и льем прошивку .

 Для комфортной отладки нужен программатор/отладчик ,  но и его можно изготовить без стороннего программатора.

Цитата

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

 

Совершенно верно. В 8ми битках вся периферия это примитивный полуавтомат, в то время как в STM32 периферия способна работать полностью автономно. И самое главное адепты калокуба и SPL совершенно не видят этих плюшек и продолжают ваять софтовый ногодрыг  по привычке...

Изменено пользователем dosikus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
E_C_C    75
29 минут назад, dosikus сказал:

встроенный бутлоадер через UART .

шикарно, мне уже нравиться,

Кот, посоветуй еще среду разработки ,  чтоб наиболее понятна для начинающего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    3

Мозг можно свернуть разбираясь с регистрами и т.п. на низком уровне.

Берите HAL и куб - вход будет самый комфортный. Сам иду таким путём. Камни мощные - в тот момент когда вам перестанет хватать мощности вы либо купите камешек мощнее, либо начнете в SPL лезть (а это уже будет гораздо проще после HAL)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    12
34 минуты назад, Sancta сказал:

Берите HAL и куб - вход будет самый комфортный. Сам иду таким путём. Камни мощные - в тот момент когда вам перестанет хватать мощности вы либо купите камешек мощнее, либо начнете в SPL лезть (а это уже будет гораздо проще после HAL)

Бред, причем полный. Учить железо по калокубу и SPL невозможно и тех аппаратных реализаций ни с SPL ни тем более с калокубом вы просто не осознаете.

А по ссылке не " Автор удачно все рассказывает" а пытается натыкать в калокубе непоймиче , сам ни черта не понимая.

Как и писал выше - натыкивают подобие софтового ногодрочерства в avr ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    3
2 минуты назад, dosikus сказал:

Бред, причем полный. Учить железо по калокубу и SPL невозможно и тех аппаратных реализаций ни с SPL ни тем более с калокубом вы просто не осознаете.

Ну знаете - если человек спрашивает с чего начать, то он новичек. Такой же как и я. И отправлять его сразу к 700 страничному руководству STM крайне негуманно. Если вы специалист и переходите с AVR ассемблера на стм с то это одно. А если новичек переходит с ардуино, то ему лучше таки начать с Куба. В процессе освоения все равно необходимо лезть в исходники и там всё становится более понятным. Это ИМХО 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
E_C_C    75

ИМХО лучше начать с простого мигания диодом, или вывести "хелло ворд" , но сделать самому без использования чужих библиотек . От простого к сложному. А когда уже придет понимание что и как работает , тогда уже можно брать готовое. Но тогда это уже не нужно будет ))) уже будет наработано свое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    3

Я не спорю с Вами насчет того, что лучше всё доскональнее изучить. 

Просто я прошёл тем же путем что и автор. Сначала ардуина, потом стм32.

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

Что нам дает куб? Тактирование правится двумя кликами. Я в синем свистке сразу ставлю 72 мгц и всё остальное он сам делает. Ноги назначаются элементарно. Проект создается автоматом. Все библиотеки лежат там где надо. Что в этом плохого? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    12

Плохо то что вы не поймете ни железо ни работу с ним.

  То что вы расписываете как свою работу с SPL и есть танцы с бубном , при работе с регистрами все намного проще.

Цитата

  Что нам дает куб?

Да ничего он не дает, тупиковый путь ардуньи и не более...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    3
Только что, dosikus сказал:

Плохо то что вы не поймете ни железо ни работу с ним.

  То что вы расписываете как свою работу с SPL и есть танцы с бубном , при работе с регистрами все намного проще.

Да ничего он не дает, тупиковый путь ардуньи и не более...

Между прочим HAL и Cube активно развиваются STM32. А вот CMSIS и SPL я читал в ближайшем будущем ждёт забвение.

Вот пример функции HAL. Вам не кажется что это теже яйца что и SPL, Только удобочитаемее и в профиль? Те же регистры напрямую опрашиваются.

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
  GPIO_PinState bitstatus;

  /* Check the parameters */
  assert_param(IS_GPIO_PIN(GPIO_Pin));

  if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET)
  {
    bitstatus = GPIO_PIN_SET;
  }
  else
  {
    bitstatus = GPIO_PIN_RESET;
  }
  return bitstatus;

Все ваши сентенции насчет куба наводят на мысль о том, как еще недавно гуру AVR на асме писали сразу в машинных кодах и посмеивались над народом с атмел студио. Типа изучайте камешек досконально. А теперь смотрят на то, куда ушло высокоуровневое программирование и выпадают в осадок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    12

И эта простыня кому то интересна ? Вы издеваетесь?

#define  BUTTON_1 GPIOx->IDR & GPIO_IDR_IDR1 

*/ cut 

if (BUTTON_1) {};

Ну и где код более читаем, прост и быстрее?????

 

Изменено пользователем dosikus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    3

Сорри что-то сглючило - три раза пост отправился.

6 минут назад, dosikus сказал:

И эта простыня кому то интересна ? Вы издеваетесь?


#define  BUTTON_1 GPIOx->IDR & GPIO_IDR_IDR1 

*/ cut 

if (BUTTON_1) {};

Ну и где код более читаем, прост и быстрее?????

 

Чтобы вот это написать надо сначала все библиотеки собрать, проект сделать, затактировать всё нужное. Для меня это пара часов.

А вот в кубе открыть и пару раз мышой ткнуть - 2 минуты. ТС спросил с чего начать новичку. Я ответил и обосновал. Ваш код быстрее и лучше и меньше. Но чтобы писать так - надо углубиться в дебри. А это займет существенное время. Особенно когда надо будет затактировать какой нибудь USART или подобное. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    12
21 минуту назад, Sancta сказал:

Чтобы вот это написать надо сначала все библиотеки собрать, проект сделать, затактировать всё нужное. Для меня это пара часов.

Для этого делается один шаблон который тиражируется по проектам, и никаких сторонних либ НЕ НАДО!

О тактировании писал выше, нет там ничего сложного...

А вам надо осознать бритву Оккама, калокуб  создан в полной противоположности сему принципу, и в результате вместо ясной и прозрачной работы с железом получили один сплошной геморрой...

Изменено пользователем dosikus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sancta    3
11 минуту назад, dosikus сказал:

А вам надо осознать бритву Оккама, калокуб  создан в полной противоположности сему принципу, и в результате вместо ясной и прозрачной работы с железом получили один сплошной геморрой...

Изменено 5 минут назад пользователем dosikus

Нет никакой бритвы (как у буддистов :))

Есть только стойкое нежелание отдельных программистов пользоваться новыми удобными инструментами. Копать огород можно и мотыгой - но все почему то нанимают трактор, хотя и не понимают как он устроен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: lamer19
      Здравствуйте, хочу изучить семейство Cortex. Начал изучение программирования микроконтроллеров с AVR Attiny2313, Atmega8. Программки писал по самоучителю Белова. Писал простенькие программки чтобы светодиодом при помощи кнопки моргать, бегущие огни, прерывания по таймеру и т.п. Но в моем городе востребованы микроконтроллеры Cortex. В результате нашел вакансию:
      Требования:
      • Профильное образование;
      • Уверенное знание C, опыт разработки от 1-ого года;
      • Опыт разработки ПО для микроконтроллеров STM32 (ARM CORTEX M) в среде KEIL на языках С и ассемблера.
      • Опыт работы с интерфейсами передачи данных: Ethernet, UART, I2C, SPI, USB.
      • Умение читать принципиальные схемы;
      • Умение пользоваться для отладки осциллографом, JTAG-интерфейсом;
      • Опыт работы с SVN, Git 
      Отсюда - подскажите литературу где описывается теория, т.е. строение МК, память, регистры и т.д. Также практические примеры использования JTAG, Ethernet, UART, I2C, SPI, USB. Ну и какие железки использовать. В алиэкспресс нашёл: отладочная плата (https://ru.aliexpress.com/item/Free-shipping-100-Original-STM32-Discovery-Board-Stm32f4discovery-Stm32f4-kit-Cortex-m4-STM32-Development-Board-St/32655207218.html?ws_ab_test=searchweb0_0,searchweb201602_2_10152_5722813_10151_10065_10344_10068_10342_5722613_10343_5722913_10340_10341_10543_10698_5711413_10696_10084_10083_5722713_10618_10307_10301_5711213_10059_308_100031_10103_5711513_10624_10623_10622_10621_10620_5722513_5711313_10125,searchweb201603_25,ppcSwitch_5&algo_expid=6bb60057-1829-4c3a-bfcf-64b27a13a331-29&algo_pvid=6bb60057-1829-4c3a-bfcf-64b27a13a331&priceBeautifyAB=0), программатор (https://ru.aliexpress.com/item/1pcs-New-ST-LINK-V2-ST-LINK-V2-CN-ST-LINK-STLINK-Emulator-Download-Manager-STM8/32725864986.html?spm=a2g0v.10010108.1000014.3.2e3e252eARrNY5&traffic_analysisId=recommend_3035_null_null_null&scm=1007.13338.98644.000000000000000&pvid=be1ab406-7b1c-4874-82ab-5ccf70631523&tpp=1). В общем помогите кто чем может.
       
    • Автор: aske12345
      Здравствуйте! Прошу помощи ! Столкнулся со следующей проблемой пытаюсь подключить к контроллеру по spi память FRAM FM25CL64 ,компилятор keil , пытаюсь записать одно число и его же считать, а осциллографом вижу, что считывается не то, что записывал. Пытался в разные ячейки памяти разные числа - считываются разные числа, но не те. Пишу 0x2F считывается 0x1С,  пишу 0xFF считывается 0xFE, пишу 0x99 считывается 0x20 - ерунда какая то. 
      Куски кода привел ниже:

      int main(void) {          SystemCoreClockUpdate();     SysTick_Config(SystemCoreClock/1000);//1ms     LEDs_ini();     Button_ini();     SPI3_FRAM_ini();         delay_ms(50);     //проверим FRAM начало запись 1 байта        CS_FRAM_ON();//        while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};        SPI_I2S_SendData(SPI3, 0x06);//Set Write Enable Latch 6        while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};        while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется        CS_FRAM_OFF();        delay_us(3);    //на самом деле задержка выходит около 500нс                CS_FRAM_ON();         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};     SPI_I2S_SendData(SPI3, 0x02);// Write              while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется     SPI_I2S_SendData(SPI3, 0x10);// 13 битный адрес         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется         SPI_I2S_SendData(SPI3, 0x00);// 13 битный адрес         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется     SPI_I2S_SendData(SPI3, 0x2F);// данные          while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется              CS_FRAM_OFF();         delay_us(3);//на самом деле задержка выходит около 500нс         //проверим FRAM конец запись  1 байта         //проверим FRAM начало чтение 1 байта         CS_FRAM_ON();//         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};     SPI_I2S_SendData(SPI3, 0x03);// Read              while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется     SPI_I2S_SendData(SPI3, 0x10);// 13 битный адрес         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется         SPI_I2S_SendData(SPI3, 0x00);// 13 битный адрес         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется     SPI_I2S_SendData(SPI3, 0x00);// пишем 0 для считывания         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_TXE)== RESET){};         while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_BSY)== SET){};//ждем пока запишется         CS_FRAM_OFF(); //проверим FRAM конец чтение 1 байта              //LED1_OFF;          while(1)     {
      настройки spi:

      SPI_Init_user3.SPI_Direction = SPI_Direction_2Lines_FullDuplex;     SPI_Init_user3.SPI_Mode = SPI_Mode_Master;     SPI_Init_user3.SPI_DataSize = SPI_DataSize_8b;     SPI_Init_user3.SPI_CPOL = SPI_CPOL_High;//SPI_CPOL_Low     SPI_Init_user3.SPI_CPHA = SPI_CPHA_2Edge;     SPI_Init_user3.SPI_NSS = SPI_NSS_Soft;     SPI_Init_user3.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;//4     SPI_Init_user3.SPI_FirstBit = SPI_FirstBit_MSB;         SPI_Init_user3.SPI_CRCPolynomial = 7;          SPI_Init(SPI3, &SPI_Init_user3);
      контакты вроде все пересмотрел, думал провода может длинноваты,  клок spi настраивал на разную частоту уменьшал до 1МГц - не влияет,  пробовал делать паузу между командой WREN и командой записи 15мс, а записью и считыванием 20мс, всё то же самое не помогло..
      приложил осциллограммы:
      Осциллограмма всех посылок  WREN, WITE, READ  (тактовый сигнал ch1 и miso FRAM ch2) (синий луч отношения к делу не имеет)
      Осциллограмма  команды WREN (тактовый сигнал ch1 и miso FRAM ch2)(синий луч отношения к делу не имеет)
      Осциллограмма  команды WITE (тактовый сигнал ch1 и miso FRAM ch2)
      Осциллограмма  считанного значения записывал 0x2F, считал 0x1C (тактовый сигнал ch1 и mosi FRAM ch2)
       




    • Автор: Anton Klapatun
      День добрый!
       
      Имеется sim-карта со статическим IP и модем SIM800C, который через UART соединен с STM32F0.
      Прочитав статью на хабре, которая и являлась отправной точкой, было решено повторить подвиг, но в версии lwip 2.0.3, которой я пользуюсь, ppp изменился до неузнаваемости, что сначала внесло некоторый сумбур. Но в документации к lwip был найден текстовый файл с настройкой ppp-соединения (ppp.txt, прикреплю его ниже), в котором было все, что нужно для счастья, но когда модем начал общаться с контроллером, дальше фазы LCP дело не зашло. Как я понял из документа (ppp_connect.docx), который оказался у меня уже-и-не-помню-откуда, после конфигурирования параметров соединения в фазе LCP контроллер должен посылать в модем пакет с заголовком PAP (C0 23), но он почему-то этого не делает... Он вообще больше ничего не делает. Я пытался проследить в отладчике весь путь запроса, что приходит от модема, но это только больше меня запутало.
      Собственно, прием данных у меня организован через прерывание. После ввода AT-команды "ATD*99***1#" и получения ответа "CONNECT", устанавливается флаг "ppp_enable" и при приходе байта он кладется в очередь `xQueue_PPP_Package`.
      void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { uint8_t u8; if(huart == &huart1) { if (ppp_enable == true) { portBASE_TYPE xHigherPriorityTaskWoken_PPP_Rx; u8 = Sim800.UsartRxTemp; xHigherPriorityTaskWoken_PPP_Rx = pdFALSE; xQueueSendFromISR(xQueue_PPP_Package, &u8, &xHigherPriorityTaskWoken_PPP_Rx); } else { /*Reception of AT commands*/ } HAL_UART_Receive_IT(&huart1,&Sim800.UsartRxTemp,1); } } В задаче `StartLwIPTask` в бесконечном цикле проверяется эта очередь и при появлении элементов, записывает их в массив `PPPx.Data` и при фиксации второго HDLC-заголовка (0x7E), отправляет данные в lwip функцией `pppos_input`.
      P.S. Переменная `PPPx.Last_Index` это размер пришедшего ppp-пакета.
      void StartLwIPTask(void const * argument) { /* USER CODE BEGIN StartLwIPTask */ /*Создаем очередь*/ xQueue_Sim800_Package = xQueueCreate(128, sizeof(uint8_t)); xQueue_PPP_Package = xQueueCreate(128, sizeof(uint8_t)); uint8_t u8=0; volatile int setup = 0; tcpip_init( NULL, NULL ); /*Инициализация стека tcp/ip*/ /*Create a new PPPoS interface*/ ppp = pppos_create(&ppp_netif, output_cb, status_cb, 0); // /* Auth configuration, this is pretty self-explanatory */ ppp_set_auth(ppp, PPPAUTHTYPE_PAP, "beeline", "beeline"); /* Require peer to authenticate */ ppp_set_auth_required(ppp, 1); /*Only for PPPoS, the PPP session should be up and waiting for input.*/ ppp_set_silent(ppp, 1); /* * Initiate PPP listener (i.e. wait for an incoming connection), can only * be called if PPP session is in the dead state (i.e. disconnected). */ ppp_listen(ppp); /* Infinite loop */ for(;;) { if (sim800_init() == S_RESET) /*Настройка модуля Sim800*/ continue; for (;;) { if (pdPASS == xQueueReceive(xQueue_PPP_Package, &u8, 100/portTICK_RATE_MS)) { if (u8 == 0x7E) t++; PPPx.Data[PPPx.Last_Index++] = u8; if (t==2) { PPPx.Last_Index--; pppos_input(ppp, PPPx.Data, PPPx.Last_Index); t=0; memset(&PPPx, 0, sizeof(PPPx)); } } } } /* USER CODE END StartLwIPTask */ } Как я писал выше, все идет хорошо, пока идет фаза LCP, но после подтверждения контроллера запроса опций, наступает тишина.
      В интернете мне удалось найти довольно мало исчерпывающей информации и примеров по связке stm32+lwip+ppp, если кто-нибудь занимался подобным или сталкивался с похожей проблемой, буду очень признателен за помощь и за пинки в нужном направлении. Заранее спасибо.
       
       
      ppp.txt
      ppp_connect.docx
    • Автор: agbp
      Приветствую! 

      Мы - молодой стартап из Санкт-Петербурга с хорошей финансовой поддержкой. Создаём дроны.
      Нам не хватает серьезного программиста на полный загруженный график (можно удаленно). 

      Из основных задач, которые нужно будет решать: 
      1. Программа отслеживания объекта в видеопотоке (процессор STM32F4xx). 
      2. Программа стабилизации БПЛА по данным с гироскопа и наведение на цель. 
      3. Создание программы управления бесколлекторным двигателем по закрытому контуру с возможностью бесшовной интеграции с программой просчёта траектории ЧПУ станка. 
      4. Программирование бортового комплекса управления БПЛА (автопилот) 
      5. Полный пакет работ по созданию бортового и наземного комплексов управления роем БПЛА. 
      Оформление в штат. 
      ЗП обсуждаема, от 60 000 в месяц.
      P.S. дроны, беспилотники, авиамодели... это только начало!
    • Автор: Djanger
      Приобрёл "NUCLEO-F030R8, Отладочная плата на базе MCU STM32F030R8T6 (ARM Cortex-M0), ST-LINK/V2-1, Arduino-интерфейс"  хочу приобрести два модуля к ней но не знаю о совместимости , кого спрашиваю сомневаются и не отвечают уверенно, 1 модуль это 3,2 TFT ЖК дисплей сенсорный , а второй 8 бит LED 8 бит цифровой Tube 8-разрядный ключ. Кто что может подсказать или посоветовать прошу помочь