Jump to content
ChaNger16ua

Проблемы с загрузкой и отладкой платы STM32F103C8T6

Recommended Posts

Здравствуйте, недавно начал заниматься stm32, до этого занимался только Arduino/AVR. Купил себе плату с чипом STM32F103C8T6, и программатор ST-Link v2.

Сразу же начал искать себе подходящую IDE, остановил свой выбор на CoIDE. И когда начал, проблем с загрузкой, и компиляцией программы не было, управлял всем через регистры, и радостно мигал светодиодом, но когда решил проверить как работает отладка, столкнулся с проблемой. При запуске отладки проект компилировался и загружался, но сама отладка выдавала ошибку: Cannot execute this command without a live selected thread. Перерыл весь интернет, ничего не помогло. 

Взял уже пример с миганием светодиода из библиотеки GPIO, поменял название функции на int main, поставил return, и дописал строку которая включает SWD. Вот сам код:

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"


int main(void)
{
    int i;
    /* Initialize Leds mounted on STM32 board */
    GPIO_InitTypeDef  GPIO_InitStructure;
    /* Initialize LED which connected to PC6,9, Enable the Clock*/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    /* Configure the GPIO_LED pin */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable  , ENABLE);

    while (1)
    {
        /* Toggle LEDs which connected to PC6*/
        GPIOC->ODR ^= GPIO_Pin_13;


        /* delay */
        for(i=0;i<0x100000;i++);
    }

    return 0;
}

Запускаю, и ничего та же ошибка.

После решил сам все не делать, а создать проект в STM32CubeMX. Делал по многим примерам(код кидать не буду он стандартный). Правильно настраивал порты, в пинах sys выставил значение Serial Debug, выставил тактирование. Кидаю проект, все правильно выставляю(папки Drivers, Src, Inc), потом в конфигурации во вкладке компилятор, выставляю переменные. Компилирую, выдает такую строку:

Program Size:
      text	   data	    bss	    dec	    hex	filename
         0	      0	      0	      0	      0	NewMain.elf

тоесть программы по сути нет, это в настройках линкера во вкладке options стоит галочка на: Use memory layout from memory window.

Окей знаю что линкер просто не подключает нужные библиотеки и файлы, поэтому программа ничего не весит.

Снимаю галочку, ставлю Scatter file, который сделала STM32CubeMX, запускаю.

Дальше выдает ошибку, но не компиляции, вылазит окно Problem Occurred, нажимаю details, там такое:

An internal error occurred during: "Building".
String index out of range: -1

И все, компиляция прервана. НО если очистить проект, и потом сбилдить(либо ребилд), то работает, но заветный светодиод не моргает.

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

 

P.S перемычки на плате менял, как угодно, и с одной прошивкой и другой, не работает. Пытался освоить uVision, не пошло, куча проблем с ней, хотя уже и по гайдам делал(по нескольким), и сам все пытался. Но в итоге как не работало, так и не работает.

Поэтому прошу помощи.

Share this post


Link to post
Share on other sites

Это с Keil-ом то что-ли не пошло?

Вы лучше затрите эту строчку поскорее из поста, а то все сильно удивятся

Лично я не считаю кокос нормальным средством программирования и отладки для STM. Нахлебался с ним. Глюк на глюке, да еще и тормоз. Но это к теме не относится. Средства кодописания тут в разделе уже раз 50 обсосаны и разобраны на атомы.

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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-принтер и так далее...

3 часа назад, ChaNger16ua сказал:

остановил свой выбор на CoIDE.

Очень напрасно. Крайне советую выбрать Keil. Весь функционал работает "из коробки" и никаких танцев с бубном не требуется. Еще более рекомендую забыть про бред под названием SPL. Конечно, если нужна стабильная и предсказуемая работа МК...

Share this post


Link to post
Share on other sites

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

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

Подробнее

4 часа назад, ChaNger16ua сказал:

дописал строку которая включает SWD

Он включен по умолчанию.

Share this post


Link to post
Share on other sites

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

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

Подробнее

на загрузку да, а на отладку? Чет по моему по умолчанию эти лапы не AFIO конфигурируются


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

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

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

Подробнее

5 минут назад, mail_robot сказал:

на загрузку да, а на отладку?

Хз, в Keil точно ничего дополнительно конфигурировать не надо и лапы именно на SWD и JTAG настроены. Работал с 1, 2, 3 и 4 серией, нигде доп настройки не нужны были.

Share this post


Link to post
Share on other sites

Как то ни разу не сподобился проверить...

Но от того что еще раз пропишешь в коде, наверное хуже то не станет


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Да МК то пофигу. Если SWD включен, то используется и для прошивки и для отладки. JTAG не пользовался никогда, по нему не скажу.

Share this post


Link to post
Share on other sites
В 26.06.2019 в 12:26, ChaNger16ua сказал:

/////////////////////////

Спасибо за ответы, вроде установил Keil, и получается работать

Edited by Falconist

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...

  • Сообщения

    • Спасибо) Лень - двигатель прогресса) а в поисковике действительно не нашёл, там было всё, но не информация о транзисторе
    • Прошивка доктора 2.12. Виртуальный компорт на чипе PL-2303HX (дата кабель для прошивки сотиков сименс). Терминалы HyperTerminal и Terminal software - version 1.93b 20141030. Система Windows 7x64 и Windows 7x32. Драйверы пробовал разные. При замыкании RX TX вводимый с клавы текст в Terminal 1.93b отображается. Подключаю доктора, жму старт - тишина и пустота. В чем беда? Фото платы конвертора и распиновку прилагаю.
    • Есть готовые комплекты, делают всё.  В том числе подогрев, внутренняя и внешняя статистика,  работа с пульсовыми монетниками и купюрниками,  работа с купюрниками MDB,  работа с банковскими терминалами эквайринга MDB. Писать в личку. Возможна продажа и по безналу. 
    • 1. Увеличением номинала и мощности  2. Наверное нет. 3. Есть, но не особо большой. Так же можно незначительно увеличить ёмкость конденсатора на выходе. 4. Какой-то ШИМ контроллер. Возможно китайская перемаркировка или клон чего известного...
    • RS1 и RS2 надо подбирать. Можно один отпаять, ток упадет, может уже нормально будет. Все остальное оставить в покое. Сколько в процентах? Мелкие/крупные это несерьезная единица измерения.
    • @Bohdan Bilozor Если после замены конденсатора плата и заработает, то объясните пожалуйста как вы будете настраивать датчик, если ни чего не понимаете? На сколько мне известно, вы купили просто плату, и не известно рабочая она или нет.
    • Вот и я о том же. И палец даже чище, чем при специальных художественных съёмках..  

  • Регулируемый источник питания 0-30В 2мА...3А

  • 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...