STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
widgetii
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн май 01, 2017 20:53:11

STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение 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 все работало без внешнего генератора (подключал вообще без обвязки)
Вложения
IMG_7376_small.jpg
(170.39 КБ) 858 скачиваний
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение Myp3ik »

У меня STM32F030F4P6 с HSI отлично мигает от SysTick. Правда я не пользуюсь кубом.
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение Мурик »

У этого МК не так много памяти. Лучше вместо куба и HAL взять SPL.

Проверьте работу прошивки из архива (находится в папке bin\Release). Светодиод нужно подключить к PB1.
Вложения
STM32F030F4P6_Blink.zip
(319.51 КБ) 403 скачивания
widgetii
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн май 01, 2017 20:53:11

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение widgetii »

Попробовал ваши прошивки - все работает.

Создал новый проект с тактированием от HSI и с теми же командами как были в первом случае - и снова работает. Бред какой-то, не может же впаянный кварц так влиять на МК...

Сорри за беспокойство
slyubez
Открыл глаза
Сообщения: 77
Зарегистрирован: Сб ноя 04, 2017 19:21:12

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение 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? Мне просто не хочется связываться с коммерческими средами разработки.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение Мурик »

slyubez писал(а): Мне просто не хочется связываться с коммерческими средами разработки.
Для STM32 кроме TrueStudio есть много других бесплатных сред.
slyubez
Открыл глаза
Сообщения: 77
Зарегистрирован: Сб ноя 04, 2017 19:21:12

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение slyubez »

Забыл. У меня одно важное условие - Linux. Эта студия имеет версию под пингвина.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение dosikus »

slyubez, SES однозначно...
slyubez
Открыл глаза
Сообщения: 77
Зарегистрирован: Сб ноя 04, 2017 19:21:12

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение slyubez »

Спасибо за вариант. В понедельник у меня уже будет STLink. Хочу попробовать начать с ТруСтудией, а уже затем подумаю о других вариантах. Раньше не доводилось иметь дела с STMками, это первая проба.
Аватара пользователя
AlanDrakes
Прорезались зубы
Сообщения: 236
Зарегистрирован: Пн июл 04, 2016 16:51:22
Откуда: Россия, Омск

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение AlanDrakes »

Можете ещё собрать Eclipse + ARM Plugin + OpenOCD. Отладка шустрая, хотя сама среда, работающая на Яве не очень быстро исполняется (возможно проблема с моим ПК, но тем не менее).
ST-Link понимается без проблем.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение dosikus »

Не стоит привыкать ни к клипсине ни ее производных (True studio), это наихудший вариант для нубов.
slyubez
Открыл глаза
Сообщения: 77
Зарегистрирован: Сб ноя 04, 2017 19:21:12

Re: STM32F030F4P6 и сигнал SysTick (проблемы с HAL_Delay)

Сообщение slyubez »

С Эклипсом я уже работал на Джаве, так что он мне не в новинку. Нравится мне даже больше Идеи, хотя НетБинс понравился ещё больше.
Ответить

Вернуться в «ARM»