[stm32] 按键
防抖时间设的不是太好....
1 /* 2 ::按键控制 3 PA8接LED,PE2接按键 4 */ 5 #include"stm32f10x.h" 6 void RCC_Configuration(void); 7 void GPIO_Config(void); 8 void Delay(__IO uint32_t nCount); 9 10 int main() 11 { 12 RCC_Configuration(); //系统时钟配置|使能GPIO口 13 GPIO_Config(); //LED控制配置 14 while (1) 15 { 16 if(!GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)) 17 { 18 Delay(0x000FF);//延时防抖 19 if(!GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)) 20 { 21 GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_8))); 22 } 23 } 24 } 25 } 26 /**************************************************************************** 27 * 名 称:void GPIO_Config(void) 28 * 功 能:GPIO初始化函数 29 * 入口参数:无 30 * 出口参数:无 31 * 说 明: 32 * 调用方法:无 33 ****************************************************************************/ 34 void GPIO_Config(void) 35 { 36 GPIO_InitTypeDef GPIO_InitStructure; 37 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //配置LEDA8 38 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 39 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 40 GPIO_Init(GPIOA, &GPIO_InitStructure); 41 42 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //配置按键PE2 43 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//上拉输入 44 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 45 GPIO_Init(GPIOE, &GPIO_InitStructure); 46 } 47 /**************************************************************************** 48 * 名 称:void RCC_Configuration(void) 49 * 功 能:系统时钟配置为72MHZ|使能GPIO口 50 * 入口参数:无 51 * 出口参数:无 52 * 说 明: 53 * 调用方法:无 54 ****************************************************************************/ 55 void RCC_Configuration(void) 56 { 57 SystemInit(); 58 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOE, ENABLE);//使能GPIO口 59 } 60 /**************************************************************************** 61 * 名 称:void Delay(__IO uint32_t nCount) 62 * 功 能:延时函数 63 * 入口参数:无 64 * 出口参数:无 65 * 说 明: 66 * 调用方法:无 67 ****************************************************************************/ 68 void Delay(__IO uint32_t nCount) 69 { 70 for(; nCount != 0; nCount--); 71 }
分类:
硬件_stm32F10x
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?