STM32 按鍵掃描方式 使用ST3.0.0庫
========================================================================================
本文引用地址:http://m.butianyuan.cn/article/201612/325164.htmGPIO置1操作:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
例如:
GPIO_SetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);
這個函數(shù)是對一組端口的一些位置1,對PC3 PC4 PC53個引腳一起置1。GPIO_SetBits的作用是對一個端口16個引腳一起賦值。
例如:端口 GPIOC端口,對所有的引腳都置1,可以
GPIO_SetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 ... GPIO_Pin_15);把所有引腳都置1.
========================================================================================
GPIO清零操作:
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
例如:
GPIO_ResetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);
對一個端口的幾個引腳清零。PC3 PC4 PC5清零引腳。
=======================================================================================
當(dāng)引腳為輸入模式時讀引腳的電平值,是高電平還是低電平
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
例如:
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0) == 1)
{}
檢查輸入引腳PB0引腳是0還是1
=======================================================================================
當(dāng)引腳為輸出狀態(tài)時,讀引腳的輸出寄存器值,
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
例如:
(BitAction)((1-GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_3)
看當(dāng)前時刻PC3是輸出0還是輸出1。
============================================================================================
對某一位操作,可以寫0也可以寫1,既可以置1也可以清0
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)
例如:
GPIO_WriteBit(GPIOC, GPIO_Pin_3, Bit_SET);//PC3置1
GPIO_WriteBit(GPIOC, GPIO_Pin_3, Bit_RESET);//PC3清0
==============================================================================================
對端口直接賦值
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)
例如:
可以直接對PC0賦值為1,其他引腳都為0。
GPIO_Write(GPIOC,0x01);//PC0=1,其他引腳為0
評論