Дяденька, ну зачем вы лукавите? Вы ведь не программист... Притворяетесь, что понимаете эти слова - а на самом деле не в теме
дык он прав!
почти все кодеры все процы выше 103 конфигурят калокубом. далее тоже почти все используют SPL.
еще скажи не так.
я както тоже на куб присел. натыкал в нем конфу для 100 проца и законфил половину переферии - код вышел 6 килобайт.
при этом мой код занимает 250 байт и делает тож самое. првда сильно похож на ассемблер.
примерно вот так
не использует никаких спл вообще. только объявление регистров
int main()
{
RCC->AHBENR = 1|(1<<6)|(1<<17)|(1<<18)|(1<<19)|(1<<20)|(1<<22); // DMA,CRC, PORTS POWER ON
RCC->APB2ENR = (1<<9)|(1<<14)|(1<<16); //ADC, USART1, TIM15
RCC->APB1ENR = (1<<1)|(1<<8)|(1<<17)|(1<<21)|(1<<28); // TIM3, USART2, I2C1, PWREN
//SYSCFG->CFGR1 |=(1<<10);
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
GPIOA->MODER |= 1|(1<< 2)|(1<< 5)|(1<< 7)|(1<<19 )|(1<<21)|(1<<10)|(1<<12); //
GPIOA->AFR[0] = (1<<8)|(1<<12); //usart tx rx,
GPIOA->AFR[1] = (1<<4)|(1<<8); //usart tx rx
GPIOA->OSPEEDR = 0xffff ;
//GPIOA->PUPDR |= (1<<4)|(1<<6);
//GPIOA->OTYPER = (1<<4);
GPIOB->MODER =0;
GPIOB->MODER = (1<<13)|(1<<15)|(1<<9)|(1<<11); //iic, tim3 1 2 input
GPIOB->AFR[0] = (1<<24)|(1<<28)|(1<<16)|(1<<20); //iic, tim3 1 2 input //(1<<0)|(1<<4); //
GPIOB->PUPDR = (1<<14)|(1<<12);
GPIOB->OTYPER = (1<<7)|(1<<6);
/*
GPIOC->MODER =0;
GPIOC->MODER = (1<<8 )|(1<<10 )|(1<<20 )|(1<<22 )|(1<<24 ); //|(1<< )|
GPIOD->MODER =0;
GPIOD->MODER = (1<<4); //|(1<<13)(1<< )|(1<< )|(1<< )|(1<< )|;
*/
GPIOF->MODER =0;
GPIOF->MODER = (1<<10)|(1<<12 )|(1<<14 );
GPIOF->OTYPER = (1<<4);
GPIOF->PUPDR = (1<<8);
RCC->CFGR3 = (1<<4);
SYSCFG->EXTICR[1] =5;
/*
USART1->CR1 = 1;
USART1->BRR = 32000/900; //(0x9C4); //9600
USART1->CR1 |= USART_CR1_RE|USART_CR1_RXNEIE;
USART1->CR1 |= USART_CR1_TE;
*/
initUART1();
USART2->CR1 = 1;
USART2->BRR = 48000/1400;
USART2->CR1 |= USART_CR1_RE|USART_CR1_RXNEIE;
USART2->CR1 |= USART_CR1_TE;
ADC1->CR = 0;
ADC1->CR |= ADC_CR_ADCAL;
while ((ADC1->CR & ADC_CR_ADCAL) != 0)
{ }
ADC1->CFGR2 = (1<<31) ;// pclk/4
ADC1->CR = 1;
ADC1->CFGR1 = ADC_CFGR1_OVRMOD | ADC_CFGR1_DISCEN ;
ADC1->SMPR = (1<<1)|(1<<2); //charge clock cycles
ADC1->CR = 1;
EXTI->IMR =(1<<4);
EXTI->FTSR =(1<<4);
I2C1->TIMINGR = 0x20001A4B;
I2C1 ->CR1 = 1; // |(1<< )|(1<< )|(1<< )|(1<< )|(1<< )|(1<< )|(1<< )|(1<< )|;
TIM3->PSC = 700;
TIM3->ARR = 65520;
TIM3->CR1 = TIM_CR1_ARPE ;
TIM3->CR2 = 0;
TIM3->SMCR = 0;
TIM3->CCMR1 = (1<<0)|(1<<8);
TIM3->CCER = (1<<0)|(1<<4); //|(1<<1)|(1<<3) ;
TIM3->DIER = (1<<1)|(1<<2);
TIM3->EGR = 0;
TIM3->CR1|=1;
TIM14->PSC = 479;
TIM14->DIER = 1;
TIM14->ARR = 100;
TIM14->CR1 = 1;
TIM15->PSC = 479;
TIM15->DIER = 1;
TIM15->ARR = 35;
//TIM15->CR1 = 1;
NVIC_EnableIRQ( TIM14_IRQn);
NVIC_EnableIRQ( TIM3_IRQn);
//NVIC_EnableIRQ( USART1_IRQn);
//NVIC_EnableIRQ( USART2_IRQn);
//ADC1_EnableIRQ( ADC1_IRQn);
//NVIC_EnableIRQ(EXTI4_15_IRQn);
NVIC_EnableIRQ(EXTI4_15_IRQn);
SYSCFG->CFGR1 |= SYSCFG_CFGR1_USART1RX_DMA_RMP;
CRC->CR = 1;
IWDG->KR = 0X5555;
IWDG->PR = 6;
IWDG->KR = 0X5555;
IWDG->RLR = 300;
IWDG->KR = 0XAAAA;
IWDG->KR = 0XCCCC;