查看: 10454|回复: 11

[讨论] LPC54114 按键gpio初始化以及复用功能

[复制链接]
  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9413
    最后登录
    2022-5-12
    发表于 2017-6-25 10:25:59 | 显示全部楼层 |阅读模式
    本帖最后由 小马哥-1650185 于 2017-6-26 16:48 编辑

    EEEEEEEEEEEEEE.png
    直接看图吧

    这一行 翻译一下就是

    GPIO->B[1][1] = 8;
    GPIO->B[1][1] = 9;
    GPIO->B[1][1] = 10;
    GPIO->B[1][1] = 11;

    看不懂什么意思,感觉逻辑有问题,不过这一行注释掉 也是没影响的

    gpio  input  mode   还需要给B寄存器 写数值么?

    呜呜呜呜无无无无无无无无无.png
    好好
    回复

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25454
    最后登录
    2025-9-4
    发表于 2017-6-26 11:06:54 | 显示全部楼层
    楼主你好!
    我和你的想法一样,我认为配置为输入方向,再给B寄存器赋值是没有意义的。
    而且,就算输出方向,配置也应该是GPIO->B[port][pin];
    所以,我觉得你可以去掉GPIO->B[KEY_GPIO_PORT[i]][KEY_GPIO_PORT[i]] = KEY_GPIO_PIN[i];
    这个代码应该是直接拷贝的led的配置代码,而且还改的有问题。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9413
    最后登录
    2022-5-12
     楼主| 发表于 2017-6-26 12:04:32 | 显示全部楼层
    小恩GG 发表于 2017-6-26 11:06
    楼主你好!
    我和你的想法一样,我认为配置为输入方向,再给B寄存器赋值是没有意义的。
    而且,就算输出方向 ...

    那就对了
    好好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9413
    最后登录
    2022-5-12
     楼主| 发表于 2017-6-26 13:18:02 | 显示全部楼层
    小恩GG 发表于 2017-6-26 11:06
    楼主你好!
    我和你的想法一样,我认为配置为输入方向,再给B寄存器赋值是没有意义的。
    而且,就算输出方向 ...

    还有个   gpio复用的问题

    就拿PIO0_0  和PIO0_1  这两个gpio  来说吧,
    RegnameFUNC = 0FUNC = 1FUNC = 2FUNC = 3FUNC = 4FUNC = 5FUNC = 6FUNC = 7
    PIO0_0PIO0_0FC0_RXD_SDA_MOSIFC3_CTS_SSEL0CTIMER0_CAP0-SCT0_OUT3--
    PIO0_1PIO0_1FC0_TXD_SCL_MISOFC3_RTS_SSEL1CTIMER0_CAP1-SCT0_OUT1--



    FUNC1:
                PIO0_0  :   FC0_RXD_SDA_MOSI
                PIO0_1  :   FC0_TXD_SCL_MISO
    FC0_RXD_SDA_MOSI /FC0_TXD_SCL_MISO  看字面意思并不是 复用了一个功能啊
    RXD/TXD   是uart的
    SDA/SCL   是iic的
    MOSI/MISO   是spi的




    那么问题来了,
    Q1:我怎么确定具体复用那个功能呢?
    Q2:还有FC0_RXD_SDA_MOSI   中的FC0 是代表 串口0,类似FC3 是代表 串口3么?
    表示没有看明白。。。。。


    Q3:然后呢,看demo 串口0的配置: 启用的是FUNC1,那么func1 里面的  SDA ,MOSI  等怎么理解呢
    void BOARD_InitPins(void)
    {
        /* enable clock for IOCON */
        CLOCK_EnableClock(kCLOCK_Iocon);

        /* USART0 RX/TX pin */
        IOCON_PinMuxSet(IOCON, 0, 0, IOCON_MODE_INACT | IOCON_FUNC1 | IOCON_DIGITAL_EN | IOCON_INPFILT_OFF);
        IOCON_PinMuxSet(IOCON, 0, 1, IOCON_MODE_INACT | IOCON_FUNC1 | IOCON_DIGITAL_EN | IOCON_INPFILT_OFF);
    }


    详细在这个帖子,没人回复,来这里问下
    https://www.nxpic.org.cn/module/forum/thread-611303-1-1.html
    好好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25454
    最后登录
    2025-9-4
    发表于 2017-6-26 14:38:29 | 显示全部楼层
    你好。
    回答你的几个问题:
    1.  PIO0_0, PIO0_1 FUNC1的功能
    FC0_RXD_SDA_MOSI — Flexcomm Interface 0: USART RXD, I2C SDA, SPI MOSI.
    FC0_TXD_SCL_MISO — Flexcomm Interface 0: USART TXD, I2C SCL, SPI MISO.
    datasheet的引脚表格功能中说的比较清楚,FC是Flexcomm模块。
    你应该知道,flexcomm模块他是可以模拟成其他的通信口的,比如UART, I2C, SPI。
    所以,这里只是告诉你,这个引脚的FUNC1是flexcomm模块的引脚。

    2. FC, Flexcomm模块。
    3. 配置你可以结合UART的配置
        result = DbgConsole_Init(BOARD_DEBUG_UART_BASEADDR, BOARD_DEBUG_UART_BAUDRATE, DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM,
                                 BOARD_DEBUG_UART_CLK_FREQ);
    看到没,使用的其实就是flexcomm做出来的串口。
    这样应该比较清楚了吧!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25454
    最后登录
    2025-9-4
    发表于 2017-6-26 15:03:27 | 显示全部楼层
    下次问技术问题,不要去活动版块,那边我们不负责回答技术问题的。
    有技术问题,直接来这个版块问。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9413
    最后登录
    2022-5-12
     楼主| 发表于 2017-6-26 15:08:56 | 显示全部楼层
    小恩GG 发表于 2017-6-26 14:38
    你好。
    回答你的几个问题:
    1.  PIO0_0, PIO0_1 FUNC1的功能

    也就是   用 IOCON_PinMuxSet函数配置这个gpio 的模式,复用功能,
    具体用flexcomm 模块的哪个串口(usart,iic,spi),
    根据各自具体的配置 初始化成相应的功能
    好好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9413
    最后登录
    2022-5-12
     楼主| 发表于 2017-6-26 15:11:06 | 显示全部楼层
    小恩GG 发表于 2017-6-26 15:03
    下次问技术问题,不要去活动版块,那边我们不负责回答技术问题的。
    有技术问题,直接来这个版块问。 ...

    嗯嗯,知道了
    好好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25454
    最后登录
    2025-9-4
    发表于 2017-6-26 16:31:35 | 显示全部楼层
    小马哥-1650185 发表于 2017-6-26 15:08
    也就是   用 IOCON_PinMuxSet函数配置这个gpio 的模式,复用功能,
    具体用flexcomm 模块的哪个串口(usar ...

    对的!
    pinmuxset就是配置mux值,具体功能看你模块怎么配的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9413
    最后登录
    2022-5-12
     楼主| 发表于 2017-6-26 16:47:41 | 显示全部楼层
    小恩GG 发表于 2017-6-26 16:31
    对的!
    pinmuxset就是配置mux值,具体功能看你模块怎么配的。

    懂了  thanks
    好好
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-7 15:17 , Processed in 0.108172 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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