RT1064-gpio

gpio初始化

void gpio_init(PIN_enum pin, GPIODIR_enum dir, uint8 dat, uint32 pinconf)

第一个参数:引脚,用哪个就写哪个,用B9填B9,具体的在common.h文件中 typedef enum
在这里插入图片描述

第二个参数:引脚的方向 输出:GPO 输入:GPI
第三个参数:引脚初始化时设置的电平状态,输出时有效 0:低电平 1:高电平
第四个参数:引脚配置(可设置参数由zf_iomuxc.h文件内PINCONF_enum枚举值确定,多个条件使用 | 相或)。看zf_gpio.h前面宏定义部分,在这里插入图片描述
大概意思是你就点个灯啦,选第一个,用快速gpio了,用第二个,用中断了,选第三个。参数也可以自己改,目前我也不知道快速gpio是啥。

gpio设置

输出

void gpio_set(PIN_enum pin, uint8 dat)

第一个参数:引脚号
第二个参数:0 或 1

输入

uint8 gpio_get(PIN_enum pin) //你要读的引脚

返回的是unsigned char类型,即uint8

延时 ms级别

systick_delay_ms(100);

gpio方向设置

gpio_dir(PIN_enum pin, GPIODIR_enum dir)
//  @param      pin         选择的引脚 (可选择范围由 common.h 内PIN_enum枚举值确定)
//  @param      dir         引脚的方向   输出:GPO   输入:GPI

引脚电平反转

void gpio_toggle(PIN_enum pin)

gpio外部中断初始化

void gpio_interrupt_init(PIN_enum pin, TRIGGER_enum trigger, uint32 pinconf)

第一个参数:引脚
第二个参数:中断触发方式,可选enum中的

typedef enum    // 枚举触发方式
{
    NO_INT,     //关闭中断模式
    LOW,        //低电平触发
    HIGH,       //高
    RISING,     //上升沿
    FALLING,    //下降沿
    BOTH,       //仅PINT模块 可用此触发方式
}TRIGGER_enum;

第三个参数:引脚配置,可选,多个条件使用 | 相或

#define GPIO_PIN_CONFIG         SPEED_100MHZ | DSE_R0 | PULLUP_47K | PULL_EN	//宏定义GPIO引脚的默认配置,便于初始化GPIO时快速填写参数,如果需要其他参数可自行修改
#define FAST_GPIO_PIN_CONFIG    SPEED_200MHZ | DSE_R0 | PULLUP_47K | PULL_EN    //宏定义快速GPIO引脚的默认配置,便于初始化GPIO时快速填写参数,如果需要其他参数可自行修改
#define GPIO_INT_CONFIG         SPEED_100MHZ | HYS_EN | PULLUP_22K | PULL_EN    //宏定义GPIO中断引脚的默认配置,便于初始化GPIO中断时快速填写参数,如果需要其他参数可自行修改

这些可以自己改或者添加,具体的选项在zf_iomuxc.h的PINCONF_enum中。

typedef enum
{
    HYS_EN          = 1<<IOMUXC_SW_PAD_CTL_PAD_HYS_SHIFT,   //滞后使能
    
    PULLDOWN_100K   = 0<<IOMUXC_SW_PAD_CTL_PAD_PUS_SHIFT,   //端口为输入时有效
    PULLUP_47K      = 1<<IOMUXC_SW_PAD_CTL_PAD_PUS_SHIFT,   //端口为输入时有效
    PULLUP_100K     = 2<<IOMUXC_SW_PAD_CTL_PAD_PUS_SHIFT,   //端口为输入时有效
    PULLUP_22K      = 3<<IOMUXC_SW_PAD_CTL_PAD_PUS_SHIFT,   //端口为输入时有效
    
    PULL_EN         = 1<<IOMUXC_SW_PAD_CTL_PAD_PKE_SHIFT | 1<<IOMUXC_SW_PAD_CTL_PAD_PUE_SHIFT,
    KEEPER_EN       = 1<<IOMUXC_SW_PAD_CTL_PAD_PKE_SHIFT,   //保持器使能
    
    OD_EN           = 1<<IOMUXC_SW_PAD_CTL_PAD_ODE_SHIFT,   //开漏使能
    
    SPEED_50MHZ     = 0<<IOMUXC_SW_PAD_CTL_PAD_SPEED_SHIFT,
    SPEED_100MHZ    = 1<<IOMUXC_SW_PAD_CTL_PAD_SPEED_SHIFT,
    SPEED_200MHZ    = 3<<IOMUXC_SW_PAD_CTL_PAD_SPEED_SHIFT,
    
    DSE_DIS         = 0<<IOMUXC_SW_PAD_CTL_PAD_DSE_SHIFT,   //禁用输出强度设置
    DSE_R0          = 1<<IOMUXC_SW_PAD_CTL_PAD_DSE_SHIFT,   //3.3V时150ohm  1.8V时260ohm
    DSE_R0_2        = 2<<IOMUXC_SW_PAD_CTL_PAD_DSE_SHIFT,   //R/2
    DSE_R0_3        = 3<<IOMUXC_SW_PAD_CTL_PAD_DSE_SHIFT,   //R/3
    DSE_R0_4        = 4<<IOMUXC_SW_PAD_CTL_PAD_DSE_SHIFT,   //R/4
    DSE_R0_5        = 5<<IOMUXC_SW_PAD_CTL_PAD_DSE_SHIFT,   //R/5
    DSE_R0_6        = 6<<IOMUXC_SW_PAD_CTL_PAD_DSE_SHIFT,   //R/6
    DSE_R0_7        = 7<<IOMUXC_SW_PAD_CTL_PAD_DSE_SHIFT,   //R/7
        
    SRE_SLOW        = 0<<IOMUXC_SW_PAD_CTL_PAD_SRE_SHIFT,
    SRE_FAST        = 1<<IOMUXC_SW_PAD_CTL_PAD_SRE_SHIFT,
    
}PINCONF_enum;

具体的意思现在还不懂=_=

快速gpio初始化

void fast_gpio_init(PIN_enum pin, GPIODIR_enum dir, uint8 dat, uint32 pinconf)

配置和普通的一样,引脚范围可选择范围由 common.h 内PIN_enum枚举值确定,但是快速GPIO 最高可达150M的翻转输出,需要达到最高速度不能使用库函数来输出电平,需要直接操作寄存器来控制引脚,具体可以查看h文件中有宏定义
同样,快速gpio也有相关类似函数

void fast_gpio_set(PIN_enum pin, uint8 dat)
uint8 fast_gpio_get(PIN_enum pin)
void fast_gpio_dir(PIN_enum pin, GPIODIR_enum dir)
void fast_gpio_toggle(PIN_enum pin)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IMX6ULL 核心板ALTIUM原理图库+PCB封装库+主要器件技术手册, 器件手册: IMX6ULLIEC.pdf KLM8G1GETF-B041-14B.pdf MT41K256M16TW-107 IT.pdf MT9700.pdf RB521S30.PDF RT8096CHGJ5.PDF SSM3J328R.pdf 原理图库器件列表: Library Component Count : 45 Name Description ---------------------------------------------------------------------------------------------------- CAP_NP CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_1 CAP CER 22UF 6.3V 20% X5R 0603 CAP_NP_10 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_11 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_12 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_13 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_14 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_2 CAP CER 22UF 6.3V 20% X5R 0603 CAP_NP_3 CAP CER 22UF 6.3V 20% X5R 0603 CAP_NP_4 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_5 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_6 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_7 CAP CER 0.22UF 6.3V 20% X5R 0402 CAP_NP_8 CAP CER 22UF 6.3V 20% X5R 0603 CAP_NP_9 CAP CER 0.22UF 6.3V 20% X5R 0402 CRYSTAL XTAL 32.768KHZ 7PF 20PPM -- SMT CRYSTAL_JXS63 XTAL 24MHZ -- 30PPM 3.2X2.5MM SMD DIODE_SCHTKY_0 DIODE SCH RECT 200MA 30V AEC-Q101 SOD-523 IMX6ULL_CORE_140P INDUCTOR IND WW PWR 1.5uH@1MHZ 2A 20% 2520 MCIMX6Y2DVM05AA_PBGA_289PIC CPU ARM COREA7 528MHZ 16BIT 1.5V PBGA289 MOSFET_P TRAN PMOS PWR 12V 4.3A SOT23 MT29F32G08CBADB_48P IC MEM NAND FLASH ASYNC 32GB 2.7-3.6V TSOP48 MT41J256M16RE_FBGA96IC MEM DDR3 SDRAM 256MX16 1.071NS 1.35V FBGA96 MTFC4GMVEA_WFBGA_153PIC MEM NAND FLASH 8GB MMC 4.51 CTLR 2.7-3.6V FBGA153 RT8096CHGJ5 RT9166-18GVL SY6280AAC

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值