你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Turn_On_LED函数的执行效率

[复制链接]
Rockrush-256113 提问时间:2011-3-24 23:56 /
 在神舟开发板的流水灯例程中有个Turn_On_LED函数用以点亮指定LED灯。函数实现:
 
 
void Turn_On_LED(u8 LED_NUM)
{
        switch(LED_NUM)
        {
        case 0:
          GPIO_ResetBits(GPIO_LED,DS1_PIN);  /*点亮DS1灯*/
          break;
        case 1:
          GPIO_ResetBits(GPIO_LED,DS2_PIN);  /*点亮DS2灯*/
          break;
        case 2:
          GPIO_ResetBits(GPIO_LED,DS3_PIN);  /*点亮DS3灯*/
          break;
        case 3:
          GPIO_ResetBits(GPIO_LED,DS4_PIN);  /*点亮DS4灯*/
          break;          
        default:
                  GPIO_ResetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN); /*点亮所有的灯*/
          break;
        }
}
 
这么多,感觉很不舒服,试着写了另一个方法:
 
GPIO_ResetBits(GPIO_LED, DS1_PIN
收藏 评论2 发布时间:2011-3-24 23:56

举报

2个回答
废鱼 回答时间:2011-3-25 15:36:03

RE:Turn_On_LED函数的执行效率

你可以直接对寄存器操作。类似于
#define GPIO_LED  GPIOB->BSRR(BRR)=GPIO_Pin_6
然后对管脚操作。但是这样只能定义高和低,你这样写
GPIO_ResetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin);
只能是拉低某个引脚,初始化DS4_PIN=0x0001。
这样操作是在灯全灭的时候,依次点亮。但是点亮以后,就不能再依次点亮了。因为他们全部是亮的,所以你的操作是看不到效果的。
Rockrush-256113 回答时间:2011-3-25 18:32:57

RE:Turn_On_LED函数的执行效率

我写的那个函数已经调试通过了,这里想请教不同实现方法在执行效率上的差别。
void Turn_On_LED(u8 LED_NUM)
{
GPIO_ResetBits(GPIO_LED, DS1_PIN

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版