Итак, коротко: начал программировать STM32F334 (без использования HAL, SPL или что там у них сейчас?..), наткнулся на неприятность: CMSIS имеет некорректное описание подмодулей таймера HRTIM.
Версия либы
* @file stm32f334x8.h
* @author MCD Application Team
* @version V1.1.0
* @date 12-Sept-2014Суть проблемы.Регистры таймера объединены в три подструктуры:
HRTIM_Master_TypeDef
HRTIM_Timerx_TypeDef
HRTIM_Common_TypeDef
Для HRTIM1_COMMON указано корректное смещение, структура HRTIM_Common_TypeDef - тут вопросов нет, все прекрасно адресуется.
Для подтаймеров HRTIM1_TIMA..E также указаны корректные смещения, но! указана структура HRTIM_TIM_TypeDef, которая не задефайнена. Видимо, ребята из ST просто выдернули это из другого кода.
Для мастер-таймера еще круче ситуация: его даже не задефайнили и не указали смещение (хотя оно и нулевое, но все-таки, должно быть явно описано).
Скриншоты
1 и
2 поясняют картинку.
Решение.Привожу изменения в коде, может кому-нибудь пригодится (см скриншоты, желтым помечены правки).
Добавилась строка 816 - явно задано смещение модуля Master.
Добавилась строка 860 - дефайн подмодуля Master.
Изменились строки 861..865 - прописаны корректные имена структуры.
См. скриншоты
11 и
22.
В общем, ребята из ST схалтурили.
Сообщение отредактировал UnDerKetzer - Apr 19 2016, 15:47
Эскизы прикрепленных изображений