Страница 1 из 1
STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Вт июн 20, 2017 13:15:48
widgetii
Захотелось мне побаловаться с самым дешевым контроллером от 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 все работало без внешнего генератора (подключал вообще без обвязки)
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Вт июн 20, 2017 14:11:32
Myp3ik
У меня STM32F030F4P6 с HSI отлично мигает от SysTick. Правда я не пользуюсь кубом.
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Вт июн 20, 2017 14:17:43
Мурик
У этого МК не так много памяти. Лучше вместо куба и HAL взять SPL.
Проверьте работу прошивки из архива (находится в папке bin\Release). Светодиод нужно подключить к PB1.
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Ср июн 21, 2017 11:25:18
widgetii
Попробовал ваши прошивки - все работает.
Создал новый проект с тактированием от HSI и с теми же командами как были в первом случае - и снова работает. Бред какой-то, не может же впаянный кварц так влиять на МК...
Сорри за беспокойство
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Сб сен 29, 2018 19:29:25
slyubez
Апну тему.
Обзавелся вот такой платкой на сабже:
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? Мне просто не хочется связываться с коммерческими средами разработки.
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Сб сен 29, 2018 19:52:44
Мурик
slyubez писал(а): Мне просто не хочется связываться с коммерческими средами разработки.
Для STM32 кроме TrueStudio есть много других бесплатных сред.
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Сб сен 29, 2018 19:58:22
slyubez
Забыл. У меня одно важное условие - Linux. Эта студия имеет версию под пингвина.
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Сб сен 29, 2018 20:00:16
dosikus
slyubez, SES однозначно...
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Сб сен 29, 2018 20:12:15
slyubez
Спасибо за вариант. В понедельник у меня уже будет STLink. Хочу попробовать начать с ТруСтудией, а уже затем подумаю о других вариантах. Раньше не доводилось иметь дела с STMками, это первая проба.
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Пн окт 01, 2018 18:36:29
AlanDrakes
Можете ещё собрать Eclipse + ARM Plugin + OpenOCD. Отладка шустрая, хотя сама среда, работающая на Яве не очень быстро исполняется (возможно проблема с моим ПК, но тем не менее).
ST-Link понимается без проблем.
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Пн окт 01, 2018 19:00:36
dosikus
Не стоит привыкать ни к клипсине ни ее производных (True studio), это наихудший вариант для нубов.
Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)
Добавлено: Вт окт 02, 2018 20:38:34
slyubez
С Эклипсом я уже работал на Джаве, так что он мне не в новинку. Нравится мне даже больше Идеи, хотя НетБинс понравился ещё больше.