Z-Stack中LED控制

      本文介绍了Z-stack中如何修改默认的LED的设置,并且讲解了HalLedBlink的函数,以及如何使用此函数简便的输出PWM波形。 

  Z-stack的中默认的LED是P1_0,P1_1,P1_4,并且是高电平触发,如果自身的板子中与其设计不一样的话,是没有办法直接使用其控制LED的函数HalLedBlink(HAL_LED_2,5,50,200)。当然,还是可以使用直接操作IO口的方法来操作LED灯,不过HalLedBlink()这个函数是十分方便的,所以我这里演示一下如何修改LED。
  由于我手头的板子是低电平触发的,所以首先可以修改触发方式
1修改触发方式,改为低电平触发
找到hal_board_cfg.h
这里写图片描述
然后找到116和123,将ACTIVE_HIGH改为ACTIVITY_LOW
这里写图片描述
然后我的板子上LED3是P1_7,所以可想而知,修改的方法是把第127,128行改为
#define LED3_BV BV(7)
#define LED3_SBIT P1_7

  注,如果不用这些LED,建议删除这些语句,否则可能会对其它IO口产生影响。以删除LED3为例,除了删除126行

  /* 3 - Yellow */
  #define LED3_BV           BV(7)
  #define LED3_SBIT         P1_7
  #define LED3_DDR          P1DIR
  #define LED3_POLARITY     ACTIVE_HIGH
 
 

        在248行左右,还有语句
      HAL_TURN_OFF_LED3(); \
      LED3_DDR |= LED3_BV; \
        要删除,注意删除整行语句,不要留行间空隙。因为这么多行是同一个define语句

        另介绍Z-stack操作LED的函数HalLedBlink
      void HalLedBlink (uint8 leds, uint8 numBlinks, uint8 percent, uint16 period)
      函数介绍如下

      /***************************************************************************************************
       * @fn      HalLedBlink
       *
       * @brief   Blink the leds
       *
       * @param   leds       - bit mask value of leds to be blinked
       *          numBlinks  - number of blinks
       *          percent    - the percentage in each period where the led
       *                       will be on
       *          period     - length of each cycle in milliseconds
       *
       * @return  None
       ***************************************************************************************************/
       
       

            可以看出这些参数分别是,操作哪个LED灯,闪几下,亮的时间的百分比,一个闪烁的周期是多少。之所以说这个函数很好用,是因为可以看出来,除了控制LED灯闪烁的命令之外,通过百分比和周期的设置,这个函数可以直接控制某个IO口输出脉宽调制的波形,也就是这个函数可以用来输出PWM。
          如下图是使用CC2530的P1_7(3.3V)控制一个5V的灯,通过PWM来控制灯亮度的办法。HalLedBlink的最后一个参数可以填10,倒数第二个参数就是高电平时间所占总时间的百分比,值越大灯的平均亮度越高。

          这里写图片描述


          • 2
            点赞
          • 3
            收藏
            觉得还不错? 一键收藏
          • 0
            评论

          “相关推荐”对你有帮助么?

          • 非常没帮助
          • 没帮助
          • 一般
          • 有帮助
          • 非常有帮助
          提交
          评论
          添加红包

          请填写红包祝福语或标题

          红包个数最小为10个

          红包金额最低5元

          当前余额3.43前往充值 >
          需支付:10.00
          成就一亿技术人!
          领取后你会自动成为博主和红包主的粉丝 规则
          hope_wisdom
          发出的红包
          实付
          使用余额支付
          点击重新获取
          扫码支付
          钱包余额 0

          抵扣说明:

          1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
          2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

          余额充值