 |
與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
|
 |
GPIOx->IDR寄存器相當於AVR中的PINx,用於讀取整個I/O口的輸入狀態 GPIOx->ODR寄存器相當於C51中的Px和AVR中的PORTx,用於讀取和設置整個I/O口的輸出狀態
|
 |
注意GPIO_ReadOutputDataBit和GPIO_WriteBit的細微差別。前者是只要有一個端口是高電平就返回1,後者是把所有列出的端口都設為指定電平。
|
 |
GPIO_SetBits中的set的意思是「設為輸出高電平」的意思,並不是「設置」的意思。 因此GPIO_WriteBit和GPIO_SetBits函數有本質區別。
|