Форум РадиоКот https://radiokot.ru/forum/ |
|
STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) https://radiokot.ru/forum/viewtopic.php?f=59&t=146202 |
Страница 1 из 1 |
Автор: | widgetii [ Вт июн 20, 2017 13:15:48 ] | ||
Заголовок сообщения: | STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) | ||
Захотелось мне побаловаться с самым дешевым контроллером от STM (Value-line). Сделал простейшую плату с гребенкой выводов, предусмотрел на ней регулятор напряжения, блокировочные конденсаторы, кварц с обвязкой и светодиод с резистором. Припаял МК со светодиодом и решил проверить в работе, сгенерировал типовой проект в STM32Cube и добавил в while-цикл типичные две команды: Код: HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); HAL_Delay(500); Кварц пока подключать не стал, оставил в проекте настройку тактирования от внутренней RC-цепочки МК HSI (как это в есть в проекте по-умолчанию). Подключил к St-link и стал ждать мигания. Светодиод загорелся, а мигать почему-то не стал. Полез с отладчиком и обнаружил, что в HAL_Delay МК уходит в бесконечный цикл. Google подсказал, что не приходит прерывание по SysTick, поэтому внутренний счетчик не увеличивается и контроллер не знает, что время идет. Подпаял кварц с обвязкой, подключил в Cube и тактирование от HSE и не меняя эти две строчки перекомпилировал проект. Светодиод замигал. Облазил кучу статей и не понимаю, почему в данном случае от HSE системный таймер сам собой работает, а в случае HSI - не хочет. На контроллерах STM32F100C4T6 все работало без внешнего генератора (подключал вообще без обвязки)
|
Автор: | Myp3ik [ Вт июн 20, 2017 14:11:32 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
У меня STM32F030F4P6 с HSI отлично мигает от SysTick. Правда я не пользуюсь кубом. |
Автор: | Мурик [ Вт июн 20, 2017 14:17:43 ] | ||
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) | ||
У этого МК не так много памяти. Лучше вместо куба и HAL взять SPL. Проверьте работу прошивки из архива (находится в папке bin\Release). Светодиод нужно подключить к PB1.
|
Автор: | widgetii [ Ср июн 21, 2017 11:25:18 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
Попробовал ваши прошивки - все работает. Создал новый проект с тактированием от HSI и с теми же командами как были в первом случае - и снова работает. Бред какой-то, не может же впаянный кварц так влиять на МК... Сорри за беспокойство |
Автор: | slyubez [ Сб сен 29, 2018 19:29:25 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
Апну тему. Обзавелся вот такой платкой на сабже: https://github.com/STM32-base/STM32-bas ... BOARD-V1.1 Светодиод к ней подключен на порт PA4. Правильно ли я понимаю, что мне придется скорректировать часть строк кода мигалки светодиодом так? Код: #include "stm32f0xx_conf.h" #include "SysTimer.h" void GPIO_Conf(void) // Конфигурация портов ввода / вывода. { GPIO_InitTypeDef s; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); // Включаем тактирование порта PA s.GPIO_Pin = GPIO_Pin_4; // Настройка вывода PA4. s.GPIO_Mode = GPIO_Mode_OUT; // Вывод настроен на одну из альтернативных функций. s.GPIO_OType = GPIO_OType_PP; // Двухтактный выход (т. е. не открытый сток). s.GPIO_PuPd = GPIO_PuPd_NOPULL; // Подтягивающие резисторы отключены. s.GPIO_Speed = GPIO_Speed_8MHz; GPIO_Init(GPIOA, &s); // Инициализация порта. } int main(void) { GPIO_Conf(); SystemCoreClockUpdate(); SysTim_Init(100); while(1) { GPIOA->ODR ^= GPIO_Pin_4; SysTim_DelayMS(500); } } И еще такой вопрос. Использовать хочу Atollic STM32 TrueStudio. Можно ли через эту среду запрограммировать такую плату через RS232? Или придется обзавестись программатором типа ST-Link? Мне просто не хочется связываться с коммерческими средами разработки. |
Автор: | Мурик [ Сб сен 29, 2018 19:52:44 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
slyubez писал(а): Мне просто не хочется связываться с коммерческими средами разработки. Для STM32 кроме TrueStudio есть много других бесплатных сред.
|
Автор: | slyubez [ Сб сен 29, 2018 19:58:22 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
Забыл. У меня одно важное условие - Linux. Эта студия имеет версию под пингвина. |
Автор: | dosikus [ Сб сен 29, 2018 20:00:16 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
slyubez, SES однозначно... |
Автор: | slyubez [ Сб сен 29, 2018 20:12:15 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
Спасибо за вариант. В понедельник у меня уже будет STLink. Хочу попробовать начать с ТруСтудией, а уже затем подумаю о других вариантах. Раньше не доводилось иметь дела с STMками, это первая проба. |
Автор: | AlanDrakes [ Пн окт 01, 2018 18:36:29 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
Можете ещё собрать Eclipse + ARM Plugin + OpenOCD. Отладка шустрая, хотя сама среда, работающая на Яве не очень быстро исполняется (возможно проблема с моим ПК, но тем не менее). ST-Link понимается без проблем. |
Автор: | dosikus [ Пн окт 01, 2018 19:00:36 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
Не стоит привыкать ни к клипсине ни ее производных (True studio), это наихудший вариант для нубов. |
Автор: | slyubez [ Вт окт 02, 2018 20:38:34 ] |
Заголовок сообщения: | Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay) |
С Эклипсом я уже работал на Джаве, так что он мне не в новинку. Нравится мне даже больше Идеи, хотя НетБинс понравился ещё больше. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |