查看: 4850|回复: 0

[原创] 【我要创作】LPC824 Lite之GPIO模拟I2C,MPR121电容触摸传感器

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

    连续签到: 13 天

    [LV.Master]伴坛终老

    23

    主题

    4189

    帖子

    82

    金牌会员

    Rank: 6Rank: 6

    积分
    14006
    最后登录
    2025-9-9
    发表于 2017-3-12 21:34:25 | 显示全部楼层 |阅读模式
            【我要创作】LPC824 Lite之GPIO模拟I2C,MPR121电容触摸传感器。

            之前一篇帖子, 【我要创作】LPC824 Lite之GPIO模拟I2C,读写EEPROM
    https://www.nxpic.org.cn/module/foru ... 9573&fromuid=307297
    (出处: 恩智浦技术社区)
            使用GPIO模拟I2C实现了对EEPROM的读、写操作,本贴增加MPR121相关操作函数,即可实现对MPR121控制采集。
            相比之前增加的移植了4个文件,“delay.c”、“delay.h”、“I2C_Driver.c”,“I2C_Driver.h”之外,又增加了2个文件,“mpr121.c”、“mpr121.h”。
             傲游截图20170312211735.jpg

            实验硬件及连线展示。
             IMG_20170205_141824.jpg

            整体工程结构预览。
             SNAG-0007.jpg

            实验采用了MPR121与板载EEPROM 共用I2C总线,因此“I2C_Driver.c”,“I2C_Driver.h”两个文件基本没改动。
            在“mpr121.c”中增加了MPR121中断信号处理,实际也是用了GPIO查询。
    1. uint8_t checkInterrupt(void)
    2. {
    3.         if (Chip_GPIO_PinGetState(LPC_GPIO_PORT, 0, IRQn_PIN))
    4.                 return 1;        
    5.   return 0;
    6. }
    复制代码


            主程序也相对比较简单。
             傲游截图20170312212726.jpg
          
            setup();中对IO进行初始化配置,并对MPR121工作模式等初始化设置。当有触摸按键时,checkInterrupt()将查询到MPR121的中断标志。读于MPR121的寄存器1、0,组成一个16位数值,这个16位数值的每位都代表一个按键状态。
            直接打印输出结果状态如下:
             SNAG-0008.jpg
            MPR121可以识别多个按键同时按下,最多的情况就是12个按键同时按下。

            程序打包附上, SDK(gpio_MPR121).rar (1.26 MB, 下载次数: 103)
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-9 20:40 , Processed in 0.108532 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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