I.MX6U-裸机-按键实验(7)

在实验(6)的基础之上,我们加入了,按键的外设使用以及GPIO的模块化。其内容如下:

首先根据原理图得知复用的引脚,然后我们进行了gpio模块化设置,方便我们外设初始化

流程:

GPIO模块:

gpio_init:初始化引脚   gpio_init(GPIO1,18, &key_config)

gpio_oinread:读取电平

gpio_pinwrite:写入电平

 这是一个(led)GPIO初始化函数,包括输入参数举例(GPIO1,3,&led_config),表示初始化GPIO1的第三角,且初始化了led的结构体,通过这个结构体就可以进行初始化包括输入输出,高低电平。如下:

这是一个(beep)GPIO初始化函数

1.设置复用(输入)

2.电器属性(0x10B0)

3.初始化gpio(输入模式,默认高电平)

4.控制该电平的高低(main函数调用)

void key_init(void)
{	
	gpio_pin_config_t key_config;
	
	/* 1、初始化IO复用, 复用为GPIO1_IO18 */
	IOMUXC_SetPinMux(IOMUXC_UART1_CTS_B_GPIO1_IO18,0);

	IOMUXC_SetPinConfig(IOMUXC_UART1_CTS_B_GPIO1_IO18,0xF080);
	/* 3、初始化GPIO */
	//GPIO1->GDIR &= ~(1 << 18);	/* GPIO1_IO18设置为输入 */	
	key_config.direction = kGPIO_DigitalInput;
	gpio_init(GPIO1,18, &key_config);
	
}

GPIO引脚读取电位值函数(用来判断按键是否按下)

例如,这里的按键判断通过该函数实现


 GPIO引脚写入电位值函数(用来控制输出电平)

 

 例如:这里不在控制寄存器改变led的输出,而是直接通过这个函数写入

总结:

通过GPIO模块可以实现不再操控寄存器,更加简单,不用记住寄存器位置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值