bluepill/libopencm3/lib/stm32/f4/rcc.c
void rcc_pllsai_postscalers(uint8_t q, uint8_t r)
{
	uint32_t reg32 = RCC_DCKCFGR;
	reg32 &= ((RCC_DCKCFGR_PLLSAIDIVR_MASK << RCC_DCKCFGR_PLLSAIDIVR_SHIFT)
		| (RCC_DCKCFGR_PLLSAIDIVQ_MASK << RCC_DCKCFGR_PLLSAIDIVQ_SHIFT));
	RCC_DCKCFGR = reg32 | ((q << RCC_DCKCFGR_PLLSAIDIVQ_SHIFT) |
		(r << RCC_DCKCFGR_PLLSAIDIVR_SHIFT));
}
/**
 * Set the dedicated dividers after the PLLSAI configuration.
 *
 * @param q dedicated PLLSAI divider, for either A or B
 * @param r dedicated LCD-TFT divider, see LTDC
 * @sa rcc_pllsai_config
 */
Set the dedicated dividers after the PLLSAI configuration.
@param q dedicated PLLSAI divider, for either A or B
@param r dedicated LCD-TFT divider, see LTDC
@sa rcc_pllsai_config
Set the dedicated dividers after the PLLSAI configuration . @param q dedicated PLLSAI divider for either A or B @param r dedicated LCD - TFT divider see LTDC @sa rcc_pllsai_config
void rcc_pllsai_postscalers(uint8_t q, uint8_t r)
{
	uint32_t reg32 = RCC_DCKCFGR;
	reg32 &= ((RCC_DCKCFGR_PLLSAIDIVR_MASK << RCC_DCKCFGR_PLLSAIDIVR_SHIFT)
		| (RCC_DCKCFGR_PLLSAIDIVQ_MASK << RCC_DCKCFGR_PLLSAIDIVQ_SHIFT));
	RCC_DCKCFGR = reg32 | ((q << RCC_DCKCFGR_PLLSAIDIVQ_SHIFT) |
		(r << RCC_DCKCFGR_PLLSAIDIVR_SHIFT));
}
void rcc_pllsai_postscalers ( uint8_t q , uint8_t r ) { uint32_t reg32 = RCC_DCKCFGR ; reg32 &= ( ( RCC_DCKCFGR_PLLSAIDIVR_MASK << RCC_DCKCFGR_PLLSAIDIVR_SHIFT ) | ( RCC_DCKCFGR_PLLSAIDIVQ_MASK << RCC_DCKCFGR_PLLSAIDIVQ_SHIFT ) ) ; RCC_DCKCFGR = reg32 | ( ( q << RCC_DCKCFGR_PLLSAIDIVQ_SHIFT ) | ( r << RCC_DCKCFGR_PLLSAIDIVR_SHIFT ) ) ; }
Set the dedicated dividers after the PLLSAI configuration.
Set the dedicated dividers after the PLLSAI configuration .