Багато штифтів вашого мікроконтролера мають різні функції. Функція 'нормальний' буде стосуватися GPIO, загального призначення введення / виводу . У такому випадку ви можете використовувати ці шпильки безпосередньо, записуючи та читаючи з відповідних регістрів.
Функції "альтернативного" посилаються на інші функції, які можуть включати I 2 C, SPI, USART, CCP, PWM, Clock, ADC тощо. Як ви керуєте штифтами, коли в альтернативній функції залежить від периферійних, але це як правило, зводиться до запису та читання з регістрів спеціальних функцій (SFR); периферія піклується про відпочинок.
Від того, яка функція є стандартною після RESET, залежить (це не завжди GPIO!), І це можна знайти у відповідній таблиці. Більшу частину часу ви можете вибирати функцію, яку ви хочете використовувати під час польоту, так що ви можете перемикатися між периферійними пристроями.
Використовуючи один штифт для декількох периферійних пристроїв, ви можете зробити мікроконтролери з дуже великими можливостями. Однак, оскільки ви більшу частину часу хочете, щоб ця периферія на цьому штифті весь час (і не хочете перемикати функції на льоту), ви не можете використовувати всі периферійні пристрої в одній програмі, або принаймні не одночасно час. З іншого боку, це насправді часто не потрібно.
Як Коннор вказує , «альтернативна функція» може ставитися до чого - то ще, а, всього кілька іншому контексті: тут мова йде не про те, які функції ви поклали на шпильку, але про те, що шпилька використовується для функції. Це називається Peripheral Pin Select, і в основному означає, що ви можете вибрати, який штифт використовується ваш периферійний пристрій. Наприклад, ви можете зробити RS232 над RA1 і RA2 або над RB1 і RB2.
Дивіться відповідь Коннора для більш детального опису (і підтверджуйте його для цього).