Спойлер
Спойлер
#include "stm32f10x.h"#include "system_stm32f10x.c"
void delay_(uint32_t Wot)
{
uint32_t i;
for (i=0; i<Wot; i++){}
}
int main(void)
{
int32_t tmp=0;
_Bool dir=1;
SetSysClockTo48();
// Выставляем тактирование в APB2
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
// Конфигурируем CRL регистры.
GPIOC->CRH &= ~GPIO_CRH_CNF13; // Сбрасываем биты CNF для бита 13. Режим 00 - Push-Pull
GPIOC->CRH |= GPIO_CRH_MODE13_0; // Выставляем бит MODE0 для 13 пина. Режим MODE01 = Max Speed 10MHz
while (1)
{
GPIOC->ODR &= ~GPIO_ODR_ODR13; // Выводим 0 на PC13
delay_ (4000-tmp);
GPIOC->ODR |= GPIO_ODR_ODR13; // Выводим 1 на PC13
delay_ (tmp);
if (dir) {tmp++; if (tmp>=4000) dir=0;}
else {tmp--; if (tmp<=0) dir=1;}
}
}

