Для того, чтобы понимать как работает контроллер я начал с регистровых и битовых операций. То есть включаю и выключаю ножки записью в регистры заранее вычисленных чисел в HEX, либо имени присвоенному этому числу или адресу в stm32f10x.h
Однако напрягает это сильно, особенно, если видишь код и пытаешься понять в каком режиме находится ножка и на какой частоте она работает.
Очень конечно привлекает возможность работать с записями типа
Цитата
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
... кстати не ошибка ли - как может GPIO_Mode_AIN сочетаться с 50 МГц, к тому же эта ножка сконфигуррована под DAC.
Однако возникает опасение - не получается ли код, написанный с помощью этой библиотеки боле громоздким и менее быстродействующим? Или же он сложен только для компилятора, а результат оптимизируется?