設置 | 登錄 | 註冊

作者共發了5篇帖子。

【講解】與GPIO操作有關的8個庫函數

1樓 巨大八爪鱼 2016-6-30 18:38
2樓 巨大八爪鱼 2016-6-30 18:38
與GPIO操作有關的8個庫函數 
GPIO_ReadInputData(GPIOB) 讀取GPIOx中全部I/O口的輸入電平,相當於GPIOx->IDR
GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_8 | GPIO_Pin_11) 判斷所給出的I/O口列表中是否有輸入為高電平的端口。如果有就返回1,否則返回0
GPIO_ReadOutputData(GPIOB) 讀取單片機向GPIOx全部I/O口上輸出的電平,相當於GPIOx->ODR
GPIO_Write(GPIOB, 0x38) 設置GPIOx中全部I/O口的輸出電平,相當於GPIOx->ODR = xxx
GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_8 | GPIO_Pin_11) 判斷所給出的I/O口列表中是否有輸出高電平的端口。如果有就返回1,否則返回0
GPIO_WriteBit(GPIOB, GPIO_Pin_1 | GPIO_Pin_2, Bit_SET) 使指定I/O口全部輸出指定電平
 
GPIO_ResetBits(GPIOB, GPIO_Pin_1 | GPIO_Pin_2) 使指定I/O口輸出低電平,相當於GPIOx->BRR = xxx
GPIO_SetBits(GPIOB, GPIO_Pin_1 | GPIO_Pin_2) 使指定I/O口輸出高電平,相當於GPIOx->BSRR = xxx
3樓 巨大八爪鱼 2016-6-30 18:41
GPIOx->IDR寄存器相當於AVR中的PINx,用於讀取整個I/O口的輸入狀態
GPIOx->ODR寄存器相當於C51中的Px和AVR中的PORTx,用於讀取和設置整個I/O口的輸出狀態
4樓 巨大八爪鱼 2016-6-30 18:42
注意GPIO_ReadOutputDataBit和GPIO_WriteBit的細微差別。前者是只要有一個端口是高電平就返回1,後者是把所有列出的端口都設為指定電平。
5樓 巨大八爪鱼 2016-6-30 18:45
GPIO_SetBits中的set的意思是「設為輸出高電平」的意思,並不是「設置」的意思。
因此GPIO_WriteBit和GPIO_SetBits函數有本質區別。

內容轉換:

回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張
©2010-2025 Purasbar Ver3.0 [手機版] [桌面版]
除非另有聲明,本站採用知識共享署名-相同方式共享 3.0 Unported許可協議進行許可。