完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1.USER文件夹下新建key文件夹 2.key文件夹下新建key.c key.h 3.双击USER文件夹,添加key.c 4.点击魔术棒添加路径 key.h中添加以下语句 #ifndef _KEY_H#define _KEY_H#define KEY_ON 1#define KEY_OFF 0#define KEY1_GPIO_PIN GPIO_Pin_0#define KEY1_GPIO_PORT GPIOA#define KEY1_GPIO_CLK RCC_APB2Periph_GPIOAvoid KEY_GPIO_Config(void);uint8_t Key_Scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin);#endif /*_KEY_H*/ .key.c中添加下列语句 void KEY_GPIO_Config(void){ GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK, ENABLE); GPIO_InitStruct.GPIO_Pin = KEY1_GPIO_PIN; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStruct); }uint8_t Key_Scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin){ if( GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == KEY_ON )//读取IDR寄存器 { // 松手检测 while( GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == KEY_ON ); return KEY_ON; } else return KEY_OFF;} led.h中添加 // ^ 异或,C语言的一个二进制的运算符// 与1异或改变,与0异或不变#define LED_G_TOGGLE {LED_G_GPIO_PORT->ODR ^= LED_G_GPIO_PIN;}//LED_G_GPIO_PIN(GPIO_Pin_0)始终为0x0001 main.c中添加 int mian(void){LED_GPIO_Config();KEY_GPIO_Config();while(1) { if(Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIIN)==KEY_ON) LED_G_TOGGLE; }} /************************GPIO_ReadInputDataBit说明**************************/ uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin){ uint8_t bitstatus = 0x00; /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET) { bitstatus = (uint8_t)Bit_SET; } else { bitstatus = (uint8_t)Bit_RESET; } return bitstatus;} 宏定义来实现灯的闪烁 #define ON 1#define OFF 0// C语言续行符,后面不能加任何东西#define LED_G(a) if(a) GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN); else GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN); |
|
|
|
只有小组成员才能发言,加入小组>>
2513 浏览 0 评论
1083浏览 2评论
700浏览 1评论
452浏览 0评论
193浏览 0评论
329浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:31 , Processed in 1.663452 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号