STM32 Cube IDE CMSIS

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
aleksey chilov
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

STM32 Cube IDE CMSIS

Сообщение aleksey chilov »

Добрый вечер всем!
Парни тут такой вопрос к знатокам STM-щикам.
Хочу настроить делей свой через SysTick и не
могу найти маски в файле под регистр STK_CTRL
и остальные... Может быть не в том файле ищу а?
Подскажите кто знает. То как известно в кубике
с автоподстановкой дела обстоят ну не очень уж...
Прошу сильно не ругайтесь я баран бараном тут.
HAL не признаю хочу работать с CMSIS так как
начинал с AVR и с регистрами как-то привычнее чтоли...
На фотках всё есть...
Спасибо.

Изображение Изображение Изображение
Аватара пользователя
azhel12
Встал на лапы
Сообщения: 145
Зарегистрирован: Пн апр 02, 2012 15:56:23

Re: STM32 Cube IDE CMSIS

Сообщение azhel12 »

Могу не совсем верно оперировать терминами, но SysTick - это не про STM, а про ARM вообще, маски искать надо в ARM-овских заголовках (core_cm3 в вашем случае).

Изображение
aleksey chilov
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

Re: STM32 Cube IDE CMSIS

Сообщение aleksey chilov »

Что-то не получается... Не срабатывает прерывание у меня. Настройки вроде правильные а хендлере переменная не инкрементируется. Что-то где-то...
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 Cube IDE CMSIS

Сообщение VladislavS »

В CMSIS есть функция uint32_t SysTick_Config(uint32_t ticks). Либо используйте её, либо посмотрите как она внутри устроена.
aleksey chilov
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

Re: STM32 Cube IDE CMSIS

Сообщение aleksey chilov »

Изображение

Добавлено after 38 seconds:
Может что в настройках не то?
NotoriousCoder)
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс июл 30, 2023 14:12:33

Re: STM32 Cube IDE CMSIS

Сообщение NotoriousCoder) »

Ну так смотрите, есть бит SysTick_CTRL_ENABLE_Msk, Вы его зачем то очищаете, ставите SysTick_CTRL_TICKINT_Msk и думаете, почему не работает. Я в своем проекте (правда у меня cm4, но мне кажется, что тут одинаково будет) делаю вот так:

Код: Выделить всё

static bool SysTick_Init(uint32_t ticks){
	/* LOAD register has only 24 bits */
	if (ticks > 0x00FFFFFF || ticks < 1) return 1;
	SysTick->LOAD = ticks;
	SysTick->VAL = 0; /* Writing any number would clear VAL register */
	SysTick->CTRL |= SysTick_CTRL_CLKSOURCE_Msk
			| SysTick_CTRL_TICKINT_Msk
			| SysTick_CTRL_ENABLE_Msk;
	return 0;

Добавлено after 4 minutes 42 seconds:
С помощью TICKINT Вы включаете прерывания (которые потом в SysTick_Handler обрабатываете), а с помощью ENABLE, каким бы это удивительным не казалось, Вы просто включаете сам таймер
Ответить

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