嵌入式系統/輸入與輸出(I/O)
< 嵌入式系统
在嵌入式系統中,大部分輸入端與輸出端都是邏輯電平管腳(端口),而輸入操作是讀取某個管腳的邏輯值,輸出操作是向這個管腳寫入邏輯值。此外,單片機也會將某個管腳上的電平變化作為輸入,而這類輸入會被作為中斷處理。I/O管腳會被打包成為管腳埠,統一管理。
部分單片機提供了內嵌A/D轉換器,可以接收外部的模擬信號。
單片機讀取到數據後,會利用嵌入的解碼器來解碼UART、IIC、SPI、CAN等現場總線的內容。
定位管腳
編輯就像寄存器一樣,管腳也被映射到了某一個地址上,在C語言裏讀寫管腳就是向相應的內存地址賦值。
sfr P1 = 0x90; //P1接口埠的地址
sbit P1_3 = P1^3; //因 P1 端口的寄存器是可位寻址的,所以能定义P1_1 为 P1接口埠中的3引脚
P1 = 0x8; //将P1的4管脚设为1,其他管脚设为0
P1_3 = 1
初始化管腳
編輯在STM單片機中,如果使用某個管腳作為I/O管腳,就需要在使用管腳之前,指定這一管腳的用法:
- 用作輸入還是輸出(INPUT OUTPUT)
- 有無上拉電阻或下拉電阻(PULLUP PULLDOWN)
- 速度為多少
- 如果這一管腳是輸入管腳,應該啟用對應管腳埠的時鐘。