Я не понимаю про порты чего-то очень важного.
1)
Написал вот такой код. На осциллографе наблюдаю время переключения портов.
Почему PB7 переключается медленнее чем PA5 PA11 ?

Код
HSI_ON;
SYSTEM_CLOCK_HSI;
RCC->AHBENR |= RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOAEN; //включили тактирование портов
GPIOA->MODER &= ~GPIO_MODER_MODER5;
GPIOA->MODER |= GPIO_MODER_MODER5_0; //PA5 выход
GPIOA->OSPEEDR|= GPIO_OSPEEDER_OSPEEDR5; //Скорость PA5 максимальная
GPIOA->MODER &= ~GPIO_MODER_MODER11;
GPIOA->MODER |= GPIO_MODER_MODER11_0; //PA11 выход
GPIOA->OSPEEDR|= GPIO_OSPEEDER_OSPEEDR11; //Скорость PA11 максимальная
GPIOB->MODER &= ~GPIO_MODER_MODER7;
GPIOB->MODER |= GPIO_MODER_MODER7_0; //PB7 выход
GPIOB->OSPEEDR|= GPIO_OSPEEDER_OSPEEDR7; //Скорость PB7 максимальная
while(1)
{
GPIOA->BSRRL=GPIO_BSRR_BS_5; //высокий уровень на PA5
GPIOA->BSRRH=GPIO_BSRR_BS_5; //низкий уровень на PA5
GPIOA->BSRRL=GPIO_BSRR_BS_11; //высокий уровень на PA11
GPIOA->BSRRH=GPIO_BSRR_BS_11; //низкий уровень на PA11
GPIOB->BSRRL=GPIO_BSRR_BS_7; //высокий уровень на PB7
GPIOB->BSRRH=GPIO_BSRR_BS_7; //низкий уровень на PB7
}
SYSTEM_CLOCK_HSI;
RCC->AHBENR |= RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOAEN; //включили тактирование портов
GPIOA->MODER &= ~GPIO_MODER_MODER5;
GPIOA->MODER |= GPIO_MODER_MODER5_0; //PA5 выход
GPIOA->OSPEEDR|= GPIO_OSPEEDER_OSPEEDR5; //Скорость PA5 максимальная
GPIOA->MODER &= ~GPIO_MODER_MODER11;
GPIOA->MODER |= GPIO_MODER_MODER11_0; //PA11 выход
GPIOA->OSPEEDR|= GPIO_OSPEEDER_OSPEEDR11; //Скорость PA11 максимальная
GPIOB->MODER &= ~GPIO_MODER_MODER7;
GPIOB->MODER |= GPIO_MODER_MODER7_0; //PB7 выход
GPIOB->OSPEEDR|= GPIO_OSPEEDER_OSPEEDR7; //Скорость PB7 максимальная
while(1)
{
GPIOA->BSRRL=GPIO_BSRR_BS_5; //высокий уровень на PA5
GPIOA->BSRRH=GPIO_BSRR_BS_5; //низкий уровень на PA5
GPIOA->BSRRL=GPIO_BSRR_BS_11; //высокий уровень на PA11
GPIOA->BSRRH=GPIO_BSRR_BS_11; //низкий уровень на PA11
GPIOB->BSRRL=GPIO_BSRR_BS_7; //высокий уровень на PB7
GPIOB->BSRRH=GPIO_BSRR_BS_7; //низкий уровень на PB7
}
2) Но это ещё ничего, мне на PB7 быстро и не надо. Беда вот в чём : при переключении PA5 на ноге VDDA возникает огромная помеха,
и портятся показания АЦП который всё это время работает. Причина помехи в том, что потребление по этой ноге подскакивает .
Схема измерений и осцилограмма того что происходит при передаче байта по SPI1 SCLK которого на PA5 во вложении. На резисторе 10 Ом пульсации 100мВ.
Какие конденсаторы не вешай- всё равно показания АЦП кривые.
При переключении PB7 и PA11 такого эффекта не наблюдается. Хотя PA5 и PA11 переключаются одинаково быстро.