ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
1042034 Топик полностью
teap0t (04.10.2020 17:39, просмотров: 496) ответил ЫЫyкпy на Конструкция типа EXTI_InitStruct->EXTI_Mode это обращение к полю структуры с именем EXTI_Mode, на которую указывает EXTI_InitStruct, всё это эквивалентно (*EXTI_InitStruct).EXTI_Mode
Вот это вот - адресная арифметика. 
   tmp = (uint32_t)EXTI_BASE;
   tmp += EXTI_InitStruct->EXTI_Mode;
   *(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line;

Кладём в tmp базовый адрес, затем прибавляем к нему содержимое поля "режим", а потом пишем по получившемуся адресу. Хедер сообщает, что EXTI_Mode имеет тип EXTIMode_TypeDef, а это enum. Если не знать, что "режим" внутри представляется смещением, можно очень удивиться, как это сделал я. Но я нуб. Может это всеми признаный метод, а я просто не знаю об этом. Об этом и спрашиваю. Все так делают? Или все стараются так не делать? Или если очень хочется, то...

Это я, здравствуйте. http://the-epic-file.com/bookshelf.htm