查看: 299|回复: 1
打印 上一主题 下一主题

【MAPS四色板试用】5 飞思卡尔四色板:点亮LED灯

[复制链接] qrcode

24

主题

24

帖子

74

积分

注册会员

Rank: 2

积分
74
楼主
跳转到指定楼层
发表于 2016-3-7 02:23 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    还记得在学习单片机的过程中,最好的入门操作就是对GPIO的操作:输入和输出,而输出一般是通过对GPIO引脚设置高低电平来驱动LED的亮灭。本帖就通过设置MAPS-K64上的引脚,来控制MAPS-Dock上四个LED的亮灭

1 新建led.h文件,申明对led的操作函数

    在由上一个帖子新建的模板工程文件的source文件夹下,新建一新建led.h文件,申明对led的操作函数

#ifndef MAPS_LED_H_
#define MAPS_LED_H_

void testLed(void);

#endif //MAPS_LED_H_


2 新建lec.c文件,实现对led的操作

在gpio_pins.c和gpio_pins.h文件中,针对控制MAPS-Dock板上LED的GPIO引脚数组变量引脚


const gpio_output_pin_user_config_t ledPins[] = {
  {
    .pinName = kGpioLED1,
    .config.outputLogic = 1,
    .config.slewRate = kPortSlowSlewRate,
    .config.isOpenDrainEnabled = false,
    .config.driveStrength = kPortLowDriveStrength,
  },
  {
    .pinName = kGpioLED2,
    .config.outputLogic = 1,
    .config.slewRate = kPortSlowSlewRate,
    .config.isOpenDrainEnabled = false,
    .config.driveStrength = kPortLowDriveStrength,
  },
  {
    .pinName = kGpioLED3,
    .config.outputLogic = 1,
    .config.slewRate = kPortSlowSlewRate,
    .config.isOpenDrainEnabled = false,
    .config.driveStrength = kPortLowDriveStrength,
  },
  {
    .pinName = kGpioLED4,
    .config.outputLogic = 1,
    .config.slewRate = kPortSlowSlewRate,
    .config.isOpenDrainEnabled = false,
    .config.driveStrength = kPortLowDriveStrength,
  },
  {
    .pinName = GPIO_PINS_OUT_OF_RANGE,
  }
};


具体的实现代码如下所示,即轮流的点亮LED,再轮流的熄灭LED,如此往复。



3 将led.c文件添加到项目中

4 编译下载

将led的测试函数,添加到main.c函数中,编译下载


5 实现效果


6 排错

由上面的效果,可知,只要一个LED在闪灯,经查GPIO_DRV_OutputPinInit函数中,应该是没有问题的呀,使能了时钟,设置了引脚为输出,配置了各引脚的参数。。。


7 在fsl_gpio_driver.h文件中,查到了如下的函数,是否其他3个不亮的引脚,默认方向不为输出,需要用户手动设置呢?


8 添加设置方向:


9 下载效果,效果实现

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

88

帖子

6

积分

新手上路

Rank: 1

积分
6
沙发
发表于 2016-3-7 03:15 AM | 只看该作者
不错,,点赞。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表