ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 мая
1042064 Топик полностью
йцyкeн (04.10.2020 19:58, просмотров: 439) ответил ЫЫyкпy на Подобные манипуляции с указателями без всякой на то необходимости - однозначно говнокод и потенциальный глюкодром при использовании.
Ключевые слова - "без всякой на то необходимости". В данном случае я действительно не вижу необходимости. С другой стороны, я вообще не вижу нужды в SPL/HAL/LL. Мне кажется, писать напрямую в регистры короче и понятнее. Вот код из реального проекта: 
#define EXTI_LINE 14
#define EXTI_PORT EXTI_GPIOB

void EXTI_init()
{
  AFIO->EXTICR[(EXTI_LINE>>2)&3] =
    EXTI_PORT << ((EXTI_LINE&3)<<2);     // select port 
  EXTI->RTSR = 0;                        // rising
  EXTI->FTSR = 1 << EXTI_LINE;           // falling
  EXTI->IMR = 1 << EXTI_LINE;            // interrupt enable
  NVIC_SetPriority( EXTI15_10_IRQn, 1 ); // same as USART
  NVIC_EnableIRQ( EXTI15_10_IRQn );
}

extern "C" void EXTI15_10_IRQHandler( void )
{
  EXTI->PR = 0x3F << 10;  // clear pending bits
// That's all, folks!
}