当前位置: 首页 > news >正文

重庆住房城乡建设厅网站福建建设职业管理中心网站

重庆住房城乡建设厅网站,福建建设职业管理中心网站,广州市市花,wordpress自带主题驱动库介绍 源码地址#xff1a;https://github.com/jiejieTop/ButtonDrive 使用只需3步#xff0c;创建按键#xff0c;按键事件与回调处理函数链接映射#xff0c;周期检查按键#xff0c;支持单双击、连按、长按#xff1b;采用回调处理按键事件#xff08;自定义消…驱动库介绍 源码地址https://github.com/jiejieTop/ButtonDrive 使用只需3步创建按键按键事件与回调处理函数链接映射周期检查按键支持单双击、连按、长按采用回调处理按键事件自定义消抖时间 按键代码想必做嵌入式开发的无人不知无人不晓吧但是真的在项目中我们的按键不仅仅是一个按钮那么简单可能会涉及到长按 双击、单机、连击等操作。举个日常生活中的理解比如我们在机场经常会可以看到免费的饮水机一般都是三个按钮一个是热水开关、一个是常温水开关、还有一个是童锁开关为什么会设置这个童锁开关呢我想这里应该是处于安全考虑一般冷水都是按一下开再按一下就关这个逻辑很清晰热水也是一样但是热水比较危险如果小孩子不慎触碰就会有烫伤危险所以童锁的按钮就显得比较重要了童锁也是一个普通按钮只不过童锁一般都需要长按解锁虽然叫童锁其实也是大人锁这个按钮一般都是要长按解锁后再开启热水的开关这样做就会比较安全。假设我们需要这样的功能那么这个驱动库就比较有用了。 移植适配 1.下载源码 准备好自己的工程 自己的工程中需要适配一下底层IO口的配置 再一个就是移植修改两个读取IO电平状态的接口 创建两个按钮并且编写其按下后回调函数 Button_t Button1;/*创建一个按钮Button1*/ Button_t Button2; /*创建一个按钮Button2*//*按钮1单击执行动作*/ void Btn1_Dowm_CallBack(void *btn) {PRINT_INFO(Button1 单击!); } /*按钮1双击执行动作*/ void Btn1_Double_CallBack(void *btn) {PRINT_INFO(Button1 双击!); } /*按钮1长按执行动作*/ void Btn1_Long_CallBack(void *btn) {PRINT_INFO(Button1 长按!); } /*按钮1连按执行动作*/ void Btn1_Continuos_CallBack(void *btn) {PRINT_INFO(Button1 连按!); } /*按钮1连按释放执行动作*/ void Btn1_ContinuosFree_CallBack(void *btn) {PRINT_INFO(Button1 连按释放!); }/*按钮2单击执行动作*/ void Btn2_Dowm_CallBack(void *btn) {PRINT_INFO(Button2 单击!); } /*按钮2双击执行动作*/ void Btn2_Double_CallBack(void *btn) {PRINT_INFO(Button2 双击!); } /*按钮2长按执行动作*/ void Btn2_Long_CallBack(void *btn) {PRINT_INFO(Button2 长按!); } /*按钮2连按执行动作*/ void Btn2_Continuos_CallBack(void *btn) {PRINT_INFO(Button2 连按!); } /*按钮2连按释放执行动作*/ void Btn2_ContinuosFree_CallBack(void *btn) {PRINT_INFO(Button2 连按释放!); } 编写测试程序 编写测试按钮前适配一下串口方便打印调试信息把两个按钮的底层先初始化一下可以读取IO口状态Button_Process(); 需要周期调用按键处理函数直接放while循环 int main(void) {LED_Config();KEY_Config();USART1_Config();//RS485_Config();/* 打印信息 */PRINT_INFO(welcome to learn jiejie stm32 library!\n);Button_Create(Button1,Button1,Read_Button1_Level, HIGH);Button_Attach(Button1,BUTTON_DOWM,Btn1_Dowm_CallBack); //单击Button_Attach(Button1,BUTTON_DOUBLE,Btn1_Double_CallBack); //双击Button_Attach(Button1,BUTTON_CONTINUOS,Btn1_Continuos_CallBack); //连按 Button_Attach(Button1,BUTTON_CONTINUOS_FREE,Btn1_ContinuosFree_CallBack); //连按释放 Button_Attach(Button1,BUTTON_LONG,Btn1_Long_CallBack); //长按Button_Create(Button2,Button2, Read_Button2_Level, LOW);Button_Attach(Button2,BUTTON_DOWM,Btn2_Dowm_CallBack); //单击Button_Attach(Button2,BUTTON_DOUBLE,Btn2_Double_CallBack); //双击Button_Attach(Button2,BUTTON_CONTINUOS,Btn2_Continuos_CallBack); //连按Button_Attach(Button2,BUTTON_CONTINUOS_FREE,Btn2_ContinuosFree_CallBack); //连按释放Button_Attach(Button2,BUTTON_LONG,Btn2_Long_CallBack); //长按Get_Button_Event(Button1);Get_Button_Event(Button2);while(1) { // if((GPIOA-IDR 10) 0) // { // LED1_ONOFF(1); // } // else // { // LED1_ONOFF(0); // }Button_Process(); //需要周期调用按键处理函数Delay_Nms(20);} } 思考这个周期性调用的函数既然是周期性调用在定时器调用应该更合适。 验证测试效果 单击效果 双击效果 双击其实就是在设定的时间内快速按下两下并抬起两下跟鼠标打开浏览器网页类似的操作。 长按测试 长按就是按住一个按钮不松周期性检测状态移植没有发生改变。操作跟我们按住电脑上的音量加一直不松开的操作类似。 连按测试 连按跟长按的区别 连按是连续触发 不分单机还是双击 长按是按着不松开 计算时间 作用不一样 这个要根据项目需要去使用 是否支持连续按下。 最后 该库还支持在操作系统上使用感兴趣的兄弟可以参考源码链接说明 版权和许可 ButtonDrive 遵循 Apache License v2.0 开源许可协议可以免费在商业产品中使用并且不需要公开私有代码。 Apache License v2.0 鼓励代码共享和尊重原作者的著作权可以自由的使用修改源代码也可以将修改后的代码作为开源或者专有软件再发布作为开源或闭源商业软件但必须根据协议保留原作者版权声明。
http://www.w-s-a.com/news/775126/

相关文章:

  • 织梦企业门户网站宝塔搭建wordpress网站
  • 网站为什么没有排名了11月将现新冠感染高峰
  • 网站开发维护专员岗位职责辽阳企业网站建设
  • 做外国订单有什么网站网站设计论文提纲
  • 商城网站建设报价方案导师让做网站
  • 清远市企业网站seo联系方式动易官方网站
  • 手机上怎么做能打开的网站一级域名和二级域名跨域
  • 网站首页效果图wordpress 在线教育
  • 电商网站开发团队广西桂林商贸旅游技工学校
  • 网站模板文件怎么下载东莞常平镇邮政编码
  • 建网站需要什么wordpress误删的后果
  • wordpress无插件实现网站地图做阿里巴巴网站店铺装修费用
  • 英文互动网站建设南宁住房和城乡建设局网站
  • 威海微网站建设乐清建网站哪家强
  • 网站和app的开发成本saas系统开发教程
  • ps切片工具做网站大气简洁网站
  • 网至普的营销型网站建设wordpress邮箱验证插件下载
  • 找权重高的网站方法张家港早晨网站建设
  • WordPress数据库添加管理员关键词优化举例
  • 河南国基建设集团--官方网站wordpress qode
  • 做农村电子商务的网站有哪些内容静态网站模板古典
  • 导航网站设计方案个人网站推广方法
  • 网站排名易下拉教程防wordpress花园
  • 计算机网站建设 是什么意思现在网站建站的主流语言是什么
  • php网站跟随导航西安百姓网免费发布信息网
  • 濮阳做公司网站html5 特效网站
  • ppt设计器怎么打开深圳seo网络推广营销
  • 建设银行网站用360浏览器建设信用卡中心网站
  • 创建公司网站 教程广州建设局
  • 详述网站建设的过程简答题ui培训设计怎么样