目前共有5篇帖子。
字體大小:較小 - 100% (默認)  內容轉換:不轉換
 
點擊 回復
1311 4
【讲解】与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函数有本质区别。
回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張
(快捷鍵:Ctrl+Enter)
本帖信息
點擊數:1311 回複數:4
作者:巨大八爪鱼
最後回覆:巨大八爪鱼
最後回復時間:2016-6-30 18:45
公告板