Денис Горичевский Опубликовано 21 августа, 2017 Поделиться Опубликовано 21 августа, 2017 Ни как не заставлю мигать светодиод на stm32f103c8t6. Она же BluePill. Конфигурирую через CubeMX. Все по мануалам. Если пишу Blink через mBed, то все мигает. Как только пишу в CooCox IDE, все компилится без ошибок, заливается. Но реакции нет... Выбился из сил. Делаю все внимательно. Но результата нет. С МК имею опыт с Arduino. Сейчас осваиваю Stm32. mBed неохота, а на C не выходит пока. Прикладываю main.c: #include "main.h" #include "stm32f1xx_hal.h" void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); HAL_Delay(300); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); HAL_Delay(300); } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; /**Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); /**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } /** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); /*Configure GPIO pin : PC13 */ GPIO_InitStruct.Pin = GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); } /* USER CODE BEGIN 4 */ /* USER CODE END 4 */ /** * @brief This function is executed in case of error occurrence. * @param None * @retval None */ void _Error_Handler(char * file, int line) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ while(1) { } /* USER CODE END Error_Handler_Debug */ } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) { } #endif 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
elki Опубликовано 21 августа, 2017 Поделиться Опубликовано 21 августа, 2017 Контроллер тактируется от внешнего кварца? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Реле, вентиляторы, корпуса, разъемы, а так же любые электронные компоненты в нашем каталоге! Бесплатная доставка + 15% кэшбэк + скидки!Перейти на сайт ТМ Электроникс Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Денис Горичевский Опубликовано 21 августа, 2017 Автор Поделиться Опубликовано 21 августа, 2017 42 минуты назад, elki сказал: Контроллер тактируется от внешнего кварца? Да, тактирование выставлено точь в точь. как на 1000 уроков в инете. 72мГц. Кварц на 8. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
GOR23 Опубликовано 21 августа, 2017 Поделиться Опубликовано 21 августа, 2017 Нужно понять что именно не работает, в отладчике программа работает? в hardFault не вылетает? Светодиод точно на том порту? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке. Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
elki Опубликовано 22 августа, 2017 Поделиться Опубликовано 22 августа, 2017 После прошивки контроллера ресет ему делаете? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Литиевые батарейки и аккумуляторы от мирового лидера EVE в КомпэлКомпания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
BARS_ Опубликовано 22 августа, 2017 Поделиться Опубликовано 22 августа, 2017 Пипец, там 10 строк кода надо чтобы мигать диодом. А куб насовал туда... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
elki Опубликовано 22 августа, 2017 Поделиться Опубликовано 22 августа, 2017 Покажите скрин вкладки тактирования в кубе. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Денис Горичевский Опубликовано 22 августа, 2017 Автор Поделиться Опубликовано 22 августа, 2017 Ресет делал. Диод точно на PC13. mBed же им мигает на этой ноге. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 22 августа, 2017 Поделиться Опубликовано 22 августа, 2017 Блин, да что вы тупите с этим кубом? Вот весь код! #include "stm32f10x.h" #define LED_H (GPIOC->BSRR = GPIO_BSRR_BR13) #define LED_L (GPIOC->BSRR = GPIO_BSRR_BS13) volatile unsigned int SysTickDelay; void _delay_ms(uint32_t Val){ SysTickDelay = Val; while (SysTickDelay != 0) {}; } //------------------------------------------------------------------------ void SysTick_Handler(void){ if (SysTickDelay != 0){ SysTickDelay--; } } int main(){ //LEDs_INIT; GPIOC->CRH &= ~GPIO_CRH_CNF13; // GPIOC->CRH |= GPIO_CRH_MODE13; // SysTick INIT SysTick_Config(72000000/1000);//1ms while(1){ LED_H; _delay_ms(1000); LED_L; _delay_ms(1000); } } Во сколько раз он короче и более читаем?! Написан руками за минуту, без калокуба! А куб годится лишь на то, чтобы посмотреть на каких выводах висит периферия! 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
elki Опубликовано 22 августа, 2017 Поделиться Опубликовано 22 августа, 2017 (изменено) Похоже скоро в каждой ветке по стм будет одна страница по теме и 10 про то как лучше инициализировать контроллер)) ТС написал же, что не очень знаком с языком С, а без знаний то что предлагает @BARS_ для него будет еще сложнее чем просто в кубе мышкой потыкать и получить результат. Изменено 22 августа, 2017 пользователем elki 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 22 августа, 2017 Поделиться Опубликовано 22 августа, 2017 3 минуты назад, elki сказал: не очень знаком с языком С Куб здесь тоже не поможет. Он настроит периферию (криво и через ж...), а дальше уже нужны будут тем самые знания С, с которым автор не очень знаком. Без этого никуда не деться. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
elki Опубликовано 22 августа, 2017 Поделиться Опубликовано 22 августа, 2017 Абсолютно с Вами согласен без знания С будет не реально заставить работать периферию как надо. Тем более разобраться в портянке от куба) В данный момент у него задача мигнуть светодиодом и это можно сделать кубом, пусть даже с излишним кодом, более сложные действия заставят ТС разбираться сначала в языке С потом тыкать кнопки в кубе или писать инициализацию руками. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Денис Горичевский Опубликовано 25 августа, 2017 Автор Поделиться Опубликовано 25 августа, 2017 Есть подозрение что CooCox компилит пустой main.c. Хотя он из проекта удален. А тот, что сгенерирован кубом не берет. Т.к. что бы не делалось - размер выдаваемого hex всегда одинаков... Как указать на нужный main.c? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 25 августа, 2017 Поделиться Опубликовано 25 августа, 2017 5 минут назад, Денис Горичевский сказал: Как указать на нужный main.c? Создать проект по человечески, РУКАМИ. Код я выше дал. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mail_robot Опубликовано 25 августа, 2017 Поделиться Опубликовано 25 августа, 2017 (изменено) попробуйте тот же код что в первом посте скомпилировать в Keil. Я по нему пробежался и он вполне рабочий. Keil бесплатно качается с официального сайта. Ну или с торрентов заодно с таблеткой. "Калокуб" вполне себе нормальный инструмент кстати. Нынче в нем даже появилась опция - генерировать регистровый код. Так что преимущества работы руками сошли на нет по сути. Код компилируется очень компактно. Изменено 25 августа, 2017 пользователем mail_robot 0 Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 25 августа, 2017 Поделиться Опубликовано 25 августа, 2017 2 минуты назад, mail_robot сказал: преимущества работы руками сошли на нет по сути. За то время, что я буду тыкать кнопки в кубе и вычищать его код, я напишу все руками... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mail_robot Опубликовано 25 августа, 2017 Поделиться Опубликовано 25 августа, 2017 не каждый так сможет 0 Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 25 августа, 2017 Поделиться Опубликовано 25 августа, 2017 Так надо к этому стремиться, а не пускать слюни возле куба... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mail_robot Опубликовано 25 августа, 2017 Поделиться Опубликовано 25 августа, 2017 согласен. Только не все сразу получается у новичков 0 Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 25 августа, 2017 Поделиться Опубликовано 25 августа, 2017 3 минуты назад, mail_robot сказал: новичков Просто новички пытаются лезть в МК, не зная ничего больше 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mail_robot Опубликовано 26 августа, 2017 Поделиться Опубликовано 26 августа, 2017 вы предлагаете им запретить? И заставить их думать лучше и быстрее? Срочно поднять IQ нации? как могут, так и лезут. И хорошо, что хоть как то пытаются, а не синячат в подъездах. 1 Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух Ссылка на комментарий Поделиться на другие сайты Поделиться
Денис Горичевский Опубликовано 26 августа, 2017 Автор Поделиться Опубликовано 26 августа, 2017 15 часов назад, BARS_ сказал: Просто новички пытаются лезть в МК, не зная ничего больше Барс, тебе сколько лет? Ведешь себя на 16. Мы все поняли что ты ультра мастер и гуру. Но, если по сути помочь ничем не можешь, то не надо через пост здесь светиться. Я в жизни занимаюсь совершенно другим, а МК это моё хобби. Как хочу - так и изучаю. Сюда пришел помощи попросить у тех, кто прошел такой же путь и наступал уже на те же грабли. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 26 августа, 2017 Поделиться Опубликовано 26 августа, 2017 41 минуту назад, Денис Горичевский сказал: если по сути помочь ничем не можешь, Серьезно? Я тебе дал ГОТОВЫЙ, РАБОЧИЙ код! Осталось только включить мозги и потрать пол часа на то, чтобы разобраться! Причем это будет в разы проще, чем в коде калокуба. 42 минуты назад, Денис Горичевский сказал: МК это моё хобби Это тоже было моим хобби и начинал я еще с AVR, а теперь приносит неплохой доход. А если бы я пользовался чем-то вроде калокуба, то и вопросы сейчас такие же задавал. 17 часов назад, Денис Горичевский сказал: Есть подозрение что CooCox компилит пустой main.c А что, перенести туда код из кубического main религия не позволяет? Чего вы проблемы на пустом месте создаете? 4 часа назад, mail_robot сказал: вы предлагаете им запретить? Я предлагаю им начать с азов, а не тупых вопросов. Неужели так трудно открыть учебник по Си и прочесть пару глав? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
COKPOWEHEU Опубликовано 26 августа, 2017 Поделиться Опубликовано 26 августа, 2017 59 минут назад, BARS_ сказал: Я предлагаю им начать с азов, а не тупых вопросов. Неужели так трудно открыть учебник по Си и прочесть пару глав? Прежде чем браться за "контроллерный" Си, пусть поработают хоть немного с обычным, компьютерным. Там и средств отладки больше, и подводных камней по началу меньше... точнее, до них добираются раньше. Еще полезно выучить ассемблер, хоть какой-нибудь, но лучше именно на целевое ядро чтобы понимать выхлоп дизассемблера и уметь соптимизировать особо тормозной кусок. Ну и можно прямым текстом советовать новичкам начать с Кернигана и Ритчи + gcc / mingw / borlandC (последний дико устарел, конечно, но для освоения хорош) 0 Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз. Часть моих наработок. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость lev_gmi Опубликовано 17 января, 2018 Поделиться Опубликовано 17 января, 2018 Если для кого-то еще актуально. Столкнулся с той же проблемой. Полдня убил. Решение оказалось до смешного простым - после внесения изменения в main.c надо сохранить этот файл, и только после этого все компилировать. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.