GPIO,英文全稱為General-Purpose Input Output,也就是通用IO口,人們利用工業標準I2C、SMBus或SPI接口簡化了I/O口的擴展。當微控制器或芯片組沒有足夠的I/O端口,或當系統需要采用遠端串行通信或控制時,GPIO產品能夠提供額外的控制和監視功能。
在嵌入式系統中,經常需要控制許多結構簡單的外部設備或者電路,這些設備有的需要通過CPU控制,有的需要CPU提供輸入信號。并且,許多設備或電路只要求有開/關兩種狀體就夠了,比如LED的亮與滅。對這些設備的控制,使用傳統的串口或者并口就顯得比較復雜,所以,在嵌入式微處理器上通常提供了一種“通用可編程I/O端口”,也就是GPIO。
一個GPIO端口至少需要兩個寄存器,一個做控制用的“通用IO端口控制寄存器”,還有一個是存放數據的“通用I/O端口數據寄存器”。數據寄存器的每一位是和GPIO的硬件引腳對應的,而數據的傳遞方向是通過控制寄存器設置的,通過控制寄存器可以設置每一位引腳的數據流向。這樣,有無GPIO接口也就成為微控制器區別于微處理器的一個特征。