打印
[8/16-bit MCU]

刺眼的LED和小不舒服的按键

[复制链接]
612|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
quray1985|  楼主 | 2015-12-24 20:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不过别的部分写的还是挺好的。。由于本人以前没怎么接触过LPC系列的单片机所以只能先看各位大神的**咯

           好了言归正传说说我的劳动成果吧主要程序实现的功能就是用ISP的按钮来依次点亮3个LED灯。先来几张效果图吧。
           晚上加上屋子有点暗效果不咋滴大家将就看吧
           
           顺道说一下板子得LED太刺眼了真心有点扛不住,然后就是吐槽一下按键。个人感觉可能因为太小的缘故吧按着很不舒服。
           然后再来点代码分析咯。

相关帖子

沙发
quray1985|  楼主 | 2015-12-24 20:32 | 只看该作者
 int main()
{

   int i = 0;

         Chip_GPIO_Init(LPC_GPIO);                    //初始化IO
         Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 31);              //设定PIO0的第31个脚为输出
         Chip_GPIO_SetPinState(LPC_GPIO, 0, 31, 1);                 //设定PIO0的第31个脚为输出高电平
         
         Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 30);
         Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, 1);
         
         Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 29);
         Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, 1);
         
         Chip_GPIO_SetPinDIRInput(LPC_GPIO, 0, 24);              //设定PIO0的第24个脚为输入

        while (1) {

使用特权

评论回复
板凳
quray1985|  楼主 | 2015-12-24 20:32 | 只看该作者
 if(Chip_GPIO_ReadPortBit(LPC_GPIO, 0, 24))          //读按键是否按下
             i = i;
                else
                        {
                        if(i == 2)
                                 i = 0 ;
                        else
                           i = i+1;
            while(Chip_GPIO_ReadPortBit(LPC_GPIO, 0, 24)==0);           //按键释放检测
                  }      
                switch(i)                                                                             //依次点亮3个LED
                {
                  case 0 :
                  Chip_GPIO_SetPinState(LPC_GPIO, 0, 31, 0);
                  Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, 1);
                        Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, 1);
                        break;
                       
                        case 1 :
                  Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, 0);
                        Chip_GPIO_SetPinState(LPC_GPIO, 0, 31, 1);
                        Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, 1);
                        break;

使用特权

评论回复
地板
quray1985|  楼主 | 2015-12-24 20:34 | 只看该作者
 case 2 :
                  Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, 0);
                        Chip_GPIO_SetPinState(LPC_GPIO, 0, 31, 1);
                          Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, 1);
                        break;
                }

        }
         
}

使用特权

评论回复
5
quray1985|  楼主 | 2015-12-24 20:34 | 只看该作者
  代码只做简单分析。
         然后简略介绍一下lib_chip_lpc5410x的工程
         
        主要为芯片的各种驱动其中最重要的为chip.h类比于stm32f10x.h有兴趣的网友可以参照芯片手册的寄存器定义看一下这个文件
        
        然后需要操作那些外设在看相关外设的驱动文件。驱动文件目录如下
           
        这个实验主要用到的函数都在GPIO那个驱动文件中,有兴趣的网友可以自己看一下。时间不早了就写到这吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1488

帖子

5

粉丝