Код
ADC2->CR2 =
ADC_CR2_ADON * 1 | // A/D Converter ON / OFF
ADC_CR2_CONT * 0 | // Continuous Conversion
ADC_CR2_DMA * 0 | // Direct Memory access mode
ADC_CR2_DDS * 0 | // DMA disable selection (Single ADC)
ADC_CR2_EOCS * 0 | // End of conversion selection
ADC_CR2_ALIGN * 0 | // Data Alignment = Right
ADC_CR2_JEXTSEL_0 * 1 | // External event select for injected group - Bit 0 = EXTI_15 PG15
ADC_CR2_JEXTSEL_1 * 1 | // Bit 1
ADC_CR2_JEXTSEL_2 * 1 | // Bit 2
ADC_CR2_JEXTSEL_3 * 1 | // Bit 3
ADC_CR2_JEXTEN_0 * 0 | // External Trigger Conversion mode for injected channels - Bit 0 = Fall
ADC_CR2_JEXTEN_1 * 1 | // Bit 1
...
ADC_CR2_ADON * 1 | // A/D Converter ON / OFF
ADC_CR2_CONT * 0 | // Continuous Conversion
ADC_CR2_DMA * 0 | // Direct Memory access mode
ADC_CR2_DDS * 0 | // DMA disable selection (Single ADC)
ADC_CR2_EOCS * 0 | // End of conversion selection
ADC_CR2_ALIGN * 0 | // Data Alignment = Right
ADC_CR2_JEXTSEL_0 * 1 | // External event select for injected group - Bit 0 = EXTI_15 PG15
ADC_CR2_JEXTSEL_1 * 1 | // Bit 1
ADC_CR2_JEXTSEL_2 * 1 | // Bit 2
ADC_CR2_JEXTSEL_3 * 1 | // Bit 3
ADC_CR2_JEXTEN_0 * 0 | // External Trigger Conversion mode for injected channels - Bit 0 = Fall
ADC_CR2_JEXTEN_1 * 1 | // Bit 1
...
Очень наглядно, и удобно манипулировать настройками.
Но не нравится, что группу битов, определяющую некое число (как в JEXTSEL, JEXTEN в данном случае), приходится кодировать побитно. Нет ли простого и красивого способа задать сразу группу одним числом?