查看: 9836|回复: 35

[原创] 2.【学习LPC1768库函数】之按键实验

[复制链接]
  • TA的每日心情
    开心
    2019-7-20 09:11
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    30

    主题

    104

    帖子

    0

    高级会员

    Rank: 4

    积分
    642
    最后登录
    2019-12-2
    发表于 2019-4-13 09:26:50 | 显示全部楼层 |阅读模式
    按键实验,本质上就是操作Lpc1768的GPIO管脚,不过跟LED实验不同的是,按键实验是读取GPIO管脚值。从下图可以看出,当按键按下,P2.11管脚电平被拉低,由此可以知道,当读取指定GPIO管脚,电平值为低时候,按键按下。


    TIM截图20190413090144.png

    /************************************************************************************************
    函数名: KEY_Config(void)
    函数功能:KEY初始化管脚配置
    参数:无
    返回值:无
    *************************************************************************************************/
    void KEY_Config(void){
            
             //第一步 使能GPIO时钟功率,只有使能了GPIO时钟功率,才能有效操作Gpio寄存器。
            Chip_GPIO_Init(LPC_GPIO);//打开GPIO时钟功率
            //第二步 设置GPIO为普通GPIO功能,关闭上下拉。
            Chip_IOCON_PinMux(LPC_IOCON, 2, 10, IOCON_MODE_INACT, IOCON_FUNC0);//设置P2.10为GPIO功能,关闭上下拉
            Chip_IOCON_PinMux(LPC_IOCON, 2, 11, IOCON_MODE_INACT, IOCON_FUNC0);        
            Chip_IOCON_PinMux(LPC_IOCON, 2, 12, IOCON_MODE_INACT, IOCON_FUNC0);
            Chip_IOCON_PinMux(LPC_IOCON, 2, 25, IOCON_MODE_INACT, IOCON_FUNC0);        
            Chip_IOCON_PinMux(LPC_IOCON, 2, 26, IOCON_MODE_INACT, IOCON_FUNC0);
            Chip_IOCON_PinMux(LPC_IOCON, 2, 27, IOCON_MODE_INACT, IOCON_FUNC0);        
            Chip_IOCON_PinMux(LPC_IOCON, 2, 28, IOCON_MODE_INACT, IOCON_FUNC0);
            Chip_IOCON_PinMux(LPC_IOCON, 2, 29, IOCON_MODE_INACT, IOCON_FUNC0);
            //第三步  设置GPIO为输入模式,因为是要读取外部电路电平值。
            Chip_GPIO_SetPinDIR(LPC_GPIO,2, 10, false);//设置输入模式
            Chip_GPIO_SetPinDIR(LPC_GPIO,2, 11, false);//设置输入模式
            Chip_GPIO_SetPinDIR(LPC_GPIO,2, 12, false);//设置输入模式
           Chip_GPIO_SetPinDIR(LPC_GPIO,2, 25, false);//设置输入模式
           Chip_GPIO_SetPinDIR(LPC_GPIO,2, 26, false);//设置输入模式
            Chip_GPIO_SetPinDIR(LPC_GPIO,2, 27, false);//设置输入模式
            Chip_GPIO_SetPinDIR(LPC_GPIO,2,28, false);//设置输入模式
            Chip_GPIO_SetPinDIR(LPC_GPIO,2, 29, false);//设置输入模式
    }

            // 读取指定端口电平值   
            if(((Chip_GPIO_ReadValue(LPC_GPIO,2)>>11)&0x01)==0)//读取P2.11管脚电平值
           //  获取指定端口指定位的电平值
           if(Chip_GPIO_ReadPortBit(LPC_GPIO , 2, 11)==0)  //读取P2.11管脚电平值

           上述两个函数都是读取GPIO管脚电平值,Chip_GPIO_ReadValue函数是读整个指定端口的电平值,具体的那个位需要开发者计算 。        Chip_GPIO_ReadPortBit是读指定端口和指定位电平值。两个函数可以在不同的应用场合使用,如果开发者只有读取某个端口某位电平值,就可以用这个Chip_GPIO_ReadPortBit函数,如果需要读取指定端口就可以用这个Chip_GPIO_ReadValue函数。
    【02】LPC1768_按键实验.rar (250.2 KB, 下载次数: 36)
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-7-5 15:45
  • 签到天数: 664 天

    [LV.9]以坛为家II

    42

    主题

    1594

    帖子

    19

    金牌会员

    Rank: 6Rank: 6

    积分
    5382
    最后登录
    2021-12-22
    发表于 2019-4-13 15:11:43 | 显示全部楼层
    是要安装 ARM的CMSIS  pack,
    安装后core_cm3.h在
    Keil\ARM\Pack\ARM\CMSIS\5.4.0\CMSIS\Core\Include

    点评

    给力!  发表于 2019-4-15 13:46
    该会员没有填写今日想说内容.
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    1

    主题

    19

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    2019-10-21
    发表于 2019-4-13 12:28:31 | 显示全部楼层
    win10下下载工程后用mdk5打开,弹出个对话框好像说是要迁移工程,点击是,然后好像会自动安装lpc库。
    完成后点编译,报错:
    ..\Library\inc\cmsis.h(46): error:  #5: cannot open source input file "core_cm3.h": No such file or directory
      #include "core_cm3.h"                                                /*!< Cortex-M3 processor and core peripherals */

    找不到core_cm3.h这个文件。
    在工程文件夹里确实没搜到这个头文件。
    如果从别的地方移过来的话,应该放到哪里?stm32f103的工程里应该有这个头文件吧,毕竟都是cm3内核。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-7-20 09:11
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    30

    主题

    104

    帖子

    0

    高级会员

    Rank: 4

    积分
    642
    最后登录
    2019-12-2
     楼主| 发表于 2019-4-13 13:32:48 | 显示全部楼层
    你应该没有安装PACK库
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-7-20 09:11
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    30

    主题

    104

    帖子

    0

    高级会员

    Rank: 4

    积分
    642
    最后登录
    2019-12-2
     楼主| 发表于 2019-4-13 13:33:11 | 显示全部楼层
    本帖最后由 wbeast 于 2019-4-13 13:34 编辑
    any012 发表于 2019-4-13 12:28
    win10下下载工程后用mdk5打开,弹出个对话框好像说是要迁移工程,点击是,然后好像会自动安装lpc库。
    完成 ...

    你应该没有安装PACK文件 TIM截图20190413133428.png


    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    19

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    2019-10-21
    发表于 2019-4-13 14:37:53 | 显示全部楼层
    QQ截图20190413063316.png
    我下载的是2.5版本的,没有那些文件。

    然后我从stm32的工程里找到相关文件,拷贝过来,可以编译了。
    QQ截图20190413063646.png

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-6-12 09:44
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    4

    主题

    46

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    223
    最后登录
    2020-6-30
    发表于 2019-4-13 15:29:01 | 显示全部楼层
    any012 发表于 2019-4-13 12:28
    win10下下载工程后用mdk5打开,弹出个对话框好像说是要迁移工程,点击是,然后好像会自动安装lpc库。
    完成 ...

    需要在魔术棒里面的c/c++设置添加宏定义“CORE_CM3”
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    19

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    2019-10-21
    发表于 2019-4-15 09:51:48 | 显示全部楼层
    本帖最后由 any012 于 2019-4-15 13:44 编辑
    okwh 发表于 2019-4-13 15:11
    是要安装 ARM的CMSIS  pack,
    安装后core_cm3.h在
    Keil\ARM\Pack\ARM\CMSIS\5.4.0\CMSIS\Core\Include ...

    QQ图片20190415014856.png
    我把拷贝过来的core_cm3.h等文件删了,然后下载了这个,编译还是报错。仍提示缺少core_cm3.h等文件。

    ---------------------------------------------------------------------

    抱歉,我没仔细看,在您指出的目录下,找到了相关文件。

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    19

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    2019-10-21
    发表于 2019-4-15 09:53:15 | 显示全部楼层
    jackcheng2532 发表于 2019-4-13 15:29
    需要在魔术棒里面的c/c++设置添加宏定义“CORE_CM3”

    QQ图片20190415014811.png
    在设置选项里,添加了关键词CORE_CM3,问题依旧。
    QQ图片20190415014916.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-6-12 09:44
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    4

    主题

    46

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    223
    最后登录
    2020-6-30
    发表于 2019-4-15 10:24:40 | 显示全部楼层
    any012 发表于 2019-4-15 09:53
    在设置选项里,添加了关键词CORE_CM3,问题依旧。

    你在仔细检查下你库文件里面有没有这个头文件,路径设置的对不对
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-26 06:39 , Processed in 0.152892 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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