Спойлер
Код: Выделить всё
void RCC_init1(void)
{
FLASH->ACR |= FLASH_ACR_PRFTEN ;
//FLASH->ACR &=~ (FLASH_ACR_LATENCY_2WS) ;
FLASH->ACR |= FLASH_ACR_LATENCY_3WS ;
//PWR->CR|= PWR_CR_VOS;
RCC->CR|=RCC_CR_HSEON; // Enable HSE
while (!(RCC->CR & RCC_CR_HSERDY));
RCC->CR|=RCC_CR_CSSON;
RCC->PLLCFGR |=RCC_PLLCFGR_PLLSRC_HSE ;
RCC->PLLCFGR |=_VAL2FLD(RCC_PLLCFGR_PLLM,12);
RCC->PLLCFGR |=_VAL2FLD(RCC_PLLCFGR_PLLN,96);
// RCC->PLLCFGR|=_VAL2FLD(RCC_PLLCFGR_PLLQ,9);
RCC->PLLCFGR&=~RCC_PLLCFGR_PLLP_0 ;
RCC->PLLCFGR&=~RCC_PLLCFGR_PLLP_1 ;
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;// ��������� ���� AHB
RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;// ��������� ���� APB1
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
RCC->CR |= RCC_CR_PLLON; // enable PLL
while(!(RCC->CR & RCC_CR_PLLRDY))
{
}
RCC->CFGR |= RCC_CFGR_SW_PLL; // select source SYSCLK = PLL
while(!(RCC->CFGR& RCC_CFGR_SWS_PLL))
{
}
}Добавлено after 2 minutes 11 seconds:
_VAL2FLD я извеняюсь и с этой сосатавляющей всё работает и usart usart тоже
Добавлено after 3 minutes 5 seconds:
Спойлер
[codevoid USART1_init(void){
GPIOA->MODER |= GPIO_MODER_MODE9_1 | GPIO_MODER_MODE10_1;
GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR9;
GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR10;
GPIOA->AFR[1]|=_VAL2FLD(GPIO_AFRH_AFSEL9,7);
GPIOA->AFR[1]|=_VAL2FLD(GPIO_AFRH_AFSEL10,7);
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
// USART1->BRR =0x222E ;
// USART1->BRR =(APBCLK+BAUDRATE/2)/BAUDRATE;
USART1->CR1 |= USART_CR1_TE; // ��������� ����������
USART1->CR1 |= USART_CR1_RE;
USART1->BRR=(APBCLK+BAUDRATE/2)/BAUDRATE;
MODIFY_REG(USART1->CR1,
USART_CR1_M | USART_CR1_PCE | USART_CR1_PS,USART_CR1_TE |USART_CR1_RE);
USART1->CR1 |= USART_CR1_RXNEIE;
USART1->CR1 |= USART_CR1_UE; // ��������� USART
// ��������� ���������� �� ������ ������
NVIC_EnableIRQ (USART1_IRQn);
}][/code]


