日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]說(shuō)明:GPIOA,GPIO_Pin_0對(duì)應(yīng)key1;GPIOA,GPIO_Pin_1對(duì)應(yīng)key2;GPIOA,GPIO_Pin_2對(duì)應(yīng)LED1;GPIOA,GPIO_Pin_3對(duì)應(yīng)LED2#include"stm32f10x.h"#include"stm32f10x_rcc.h"#include"stm32f10x_gpio.h"#include"system_stm3

說(shuō)明:GPIOA,GPIO_Pin_0對(duì)應(yīng)key1;GPIOA,GPIO_Pin_1對(duì)應(yīng)key2;GPIOA,GPIO_Pin_2對(duì)應(yīng)LED1;GPIOA,GPIO_Pin_3對(duì)應(yīng)LED2

#include"stm32f10x.h"

#include"stm32f10x_rcc.h"

#include"stm32f10x_gpio.h"

#include"system_stm32f10x.h"

/*控制小燈:0滅1亮*/

#defineON1

#defineOFF0

#defineKEY_ON0

#defineKEY_OFF1

voidRCC_Configuration(void);

voidGPIO_Configuration(void);

voidSetLed(uint8_tset);

voiddelay_ms(u16time);

uint8_tKeyScan(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin_x);

intmain()

{

SystemInit();

RCC_Configuration();

GPIO_Configuration();

SetLed(ON);

while(1)

{

if(KeyScan(GPIOA,GPIO_Pin_0)==KEY_ON)

{

/*LED1反轉(zhuǎn)讀取GPIOA0端口位的值并用1減去之后再寫入此位即LED1的控制位*/

GPIO_WriteBit(GPIOA,GPIO_Pin_2,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_2)));

}

if(KeyScan(GPIOA,GPIO_Pin_1)==KEY_ON)

{

/*LED2反轉(zhuǎn)讀取GPIOA0端口位的值并用1減去之后再寫入此位即LED2的控制位*/

GPIO_WriteBit(GPIOA,GPIO_Pin_3,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_3)));

}

}

}

voidRCC_Configuration(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

}

voidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;/*配置按鍵的引腳為上拉*/

//GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/*輸入模式不需要配置端口的輸出速率GPIO_Speed*/

GPIO_Init(GPIOA,&GPIO_InitStructure);

}

voidSetLed(uint8_tset)

{

if(set==ON){

GPIO_SetBits(GPIOA,GPIO_Pin_2);//LED1

GPIO_SetBits(GPIOA,GPIO_Pin_3);//LED2

}

if(set==OFF){

GPIO_ResetBits(GPIOA,GPIO_Pin_2);

GPIO_ResetBits(GPIOA,GPIO_Pin_3);

}

}

/**

*@brief:按鍵按下檢測(cè)

*@param:端口:GPIOx端口位:GPIO_Pin_x

*@retval:按鍵的狀態(tài):按下彈起

*/

uint8_tKeyScan(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin_x)

{

/*檢測(cè)是否有按鍵按下*/

if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin_x)==KEY_ON)

{

/*延時(shí)消抖延時(shí)大約5ms*/

delay_ms(5);

if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin_x)==KEY_ON)

{

while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin_x)==KEY_ON);/*等待按鍵釋放*/

returnKEY_ON;

}

else

{

returnKEY_OFF;

}

}

returnKEY_OFF;

}

voiddelay_ms(u16time)

{

u16i=0;

while(time--)

{

i=12000;

while(i--);

}

}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉