查看: 605|回复: 0

【F030 Nucleo】3.按键信号量控制

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-9-8 08:51:07 | 显示全部楼层 |阅读模式
    分享到:
    上一次用线程控制了LED灯的闪烁,这次在这个基础上增加按键控制的功能。
        不过这个功能不是直接在中断中控制LED的亮灭,而是在中断中通过发送信号量给主线程,在主线程中再去控制。
        可能你会觉得这样是不是多次一举,这是因为这个例子太过简单,在真正的产品中,一般逻辑业务的代码量会很大,不适合于在中断中直接执行。而有了信号量就可以在主线程中去执行,也省去了定义标志变量并检测,代码的可读性更高。
       

        程序初始化按键,按键是一个类,在业务控制部分不需要考虑实现。
       

        这是按键的中断响应函数,业务简单的时候可以直接控制,如果太过复杂还是发个信号量给主线程来执行。
        其中osSignalSet是RTx的,信号量通过它来发送,第一个参数是接受者的句柄。
       

        真正实现的部分,主线程通过判断信号量的值来执行不同的操作。
        这里举的例子简单,按下按键LED快闪,松开按键慢闪。
       
        发不了附件,了解一下流程就可以了。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 22:45 , Processed in 0.127471 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.