查看: 3474|回复: 2

[分享] [学习LPC54114] 实验4 Key控制实验,代码规范化

[复制链接]
  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2017-5-1 06:50:09 | 显示全部楼层 |阅读模式
    本帖最后由 zhjb1 于 2017-5-1 07:03 编辑

    板上除了Reset微动,还带了4只微动按钮,分别连接在GPIO1的8,9,10,11上,这样首先需要更改串口LCD的驱动线。为了更改方便,我们将所有定义用户IO口统一定义,这样以后只需要更改用户统一规范定义代码就可以了,而在具体函数中就不需要一一更改了,具体举按键为例说明:
    先在board.h中定义key的GPIO引脚:
    //Define KEY PINs
    #define keyGpio 1
    #define        key1 8
    #define        key2 9
    而后再在主函数的ioInit中定义KEY[此节是增加按键]:
    //Define KEY Pins
    #define KEY1 Chip_GPIO_GetPinState(LPC_GPIO,keyGpio,key1)
    #define KEY2 Chip_GPIO_GetPinState(LPC_GPIO,keyGpio,key2)
    Chip_GPIO_SetPinDIR(LPC_GPIO,keyGpio,key1,false);
    Chip_GPIO_SetPinDIR(LPC_GPIO,keyGpio,key2,false);
    之后再编写查询按键的函数:
    //KEY Test
    void keyTest(void){
    if((KEY1==0)||(KEY2==0)){
      delay(100);
      if(KEY1==0){Chip_GPIO_SetPinToggle(LPC_GPIO,LEDGpio,LED4);}//Chip_GPIO_SetPinOutLow
      if(KEY2==0){Chip_GPIO_SetPinToggle(LPC_GPIO,LEDGpio,LED5);}//Chip_GPIO_SetPinOutHigh
    }
    }
    最后在main主函数中的循环语句中加入:
    keyTest();
    就一切Ok了,结果是按key1[板上丝印PB2]不松手,LED7闪亮,松手后随机;key2[板上丝印PB3]不松手,LED6闪亮,松手后随机;见照片41,42。
    其他的PWM、ADC、LCD、LED都如法炮制,更改引脚只需要更改board.h中的定义就可以了,程序中不再需要更改如何东西。

    41-按key1键LED4闪亮

    41-按key1键LED4闪亮

    42-按key2键LED7闪亮

    42-按key2键LED7闪亮
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-5-16 21:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    22

    帖子

    0

    注册会员

    Rank: 2

    积分
    107
    最后登录
    2020-7-26
    发表于 2018-5-16 21:41:15 | 显示全部楼层
    楼主代码规范的意思是?
    keep moving
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2018-5-17 09:44:44 | 显示全部楼层
    斩龙烈刃 发表于 2018-5-16 21:41
    楼主代码规范的意思是?

    规范化有点大,实际上仅仅只定义和引用按照模块化方式。好处是分类明确,缺点是查找不易。不少老外公司的代码基本遵循这个。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 12:42 , Processed in 0.083612 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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