rk3399 GPIO的操作方法

  1. RK3399 GPIO分为4个大组 0 ~ 4,每个大组分为4个小组(A,B,C,D),比如GPIO0 有 A,B,C,D四个小组,每个小组有A0~A7个gpio

    一个GPIO需要三类功能支持:gpio时钟,gpio输入输出,这个pin要设置为gpio功能(复用)

  2. GPIO寄存器介绍

image-20230402112152775

数据寄存器,用来设置某一组 (A,B,C,D)的输出高电平还是低电平,Bit0 对应A0,bit7 对应A7,bit8 对应B0,bit16 对应C0,bit24对应D0 以此类推

image-20230402113015263

方向寄存器,用来设置某个引脚方向输入/输出,Bit0 对应A0,bit7 对应A7,bit8 对应B0,bit16 对应C0,bit24对应D0 以此类推

image-20230402113534033

读输入寄存器,用来读取某个寄存器的输入电平。

  1. GPIO时钟配置CRU

    CRU_CLKGATE_CON31 寄存器第3,4,5为分别设置GPIO2~4时钟

    image-20230402120714531

    PMUCRU_CLKGATE_CON1 用来设置GPIO0和1的时钟

image-20230402121048979

​ 注意:这些寄存器都有一个 write_mask 位

image-20230402121702406

如果需要设置这个寄存器位0, 要先写入write_mask bit16写入1,才可以给对应的寄存器位写值。如果要设置位3,要先写write_mask位bit19写入1才可以

  1. 复用设置

    先看寄存器图

    image-20230402124603010

    image-20230402125148965

    同样的这些寄存器都有write_enable位。如果要写入bit0,需要先设置bit 16为1

    image-20230402125240032

    image-20230402125508460

    上图设置了GPIO2 A组里面第0个pin,用2位来设置这个引脚的功能

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/yangdh/p/17280285.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!