请选择 进入手机版 | 继续访问电脑版
查看: 111|回复: 14

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

[复制链接]
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    13

    主题

    27

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    223
    最后登录
    2019-4-20
    发表于 7 天前 | 显示全部楼层 |阅读模式
    按键实验,本质上就是操作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, 下载次数: 1)
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    10 小时前
  • 签到天数: 357 天

    [LV.8]以坛为家I

    39

    主题

    1093

    帖子

    19

    金豆

    金牌会员

    Rank: 6Rank: 6

    积分
    2911
    最后登录
    2019-4-20
    发表于 7 天前 | 显示全部楼层
    是要安装 ARM的CMSIS  pack,
    安装后core_cm3.h在
    Keil\ARM\Pack\ARM\CMSIS\5.4.0\CMSIS\Core\Include

    点评

    给力!  发表于 5 天前
    该会员没有填写今日想说内容.
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    1

    主题

    16

    帖子

    0

    金豆

    注册会员

    Rank: 2

    积分
    57
    最后登录
    2019-4-19
    发表于 7 天前 | 显示全部楼层
    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的每日心情
    开心
    11 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    13

    主题

    27

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    223
    最后登录
    2019-4-20
     楼主| 发表于 7 天前 | 显示全部楼层
    你应该没有安装PACK库
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 2 天

    [LV.1]初来乍到

    13

    主题

    27

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

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

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


    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    16

    帖子

    0

    金豆

    注册会员

    Rank: 2

    积分
    57
    最后登录
    2019-4-19
    发表于 7 天前 | 显示全部楼层
    QQ截图20190413063316.png
    我下载的是2.5版本的,没有那些文件。

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

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:01
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    21

    帖子

    0

    金豆

    注册会员

    Rank: 2

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

    需要在魔术棒里面的c/c++设置添加宏定义“CORE_CM3”
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    16

    帖子

    0

    金豆

    注册会员

    Rank: 2

    积分
    57
    最后登录
    2019-4-19
    发表于 5 天前 | 显示全部楼层
    本帖最后由 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

    主题

    16

    帖子

    0

    金豆

    注册会员

    Rank: 2

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

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

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:01
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    21

    帖子

    0

    金豆

    注册会员

    Rank: 2

    积分
    72
    最后登录
    2019-4-19
    发表于 5 天前 | 显示全部楼层
    any012 发表于 2019-4-15 09:53
    在设置选项里,添加了关键词CORE_CM3,问题依旧。

    你在仔细检查下你库文件里面有没有这个头文件,路径设置的对不对
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2019-4-20 20:48 , Processed in 0.118957 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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