IMX6ULL裸機程式 3 按鍵輸入檢測

2021-10-03 10:57:31 字數 1792 閱讀 4193

按鍵輸入檢測採用gpio輸入功能,與gpio輸出功能類似,具體需要如下幾步:

/*gpio初始化:

引數1:gpio組

引數2:gpiopin

引數3:gpio屬性

*/void gpio_init(gpio_type *base,int pin,gpio_pin_config_t *config)

}int gpio_pinread(gpio_type *base,int pin)

void gpio_pinwrite(gpio_type *base,int pin,int value)

else

}

#ifndef __bsp_gpio_h

#define __bsp_gpio_h

#define __bsp_key_h

#include "imx6ul.h"

/* 列舉型別和結構體定義 */

typedef enum _gpio_pin_direction

gpio_pin_direction_t;

/* gpio 配置結構體 */

typedef struct _gpio_pin_config

gpio_pin_config_t;

/* 函式宣告 */

void gpio_init(gpio_type *base, int pin, gpio_pin_config_t *config);

int gpio_pinread(gpio_type *base, int pin);

void gpio_pinwrite(gpio_type *base, int pin, int value);

#endif

#include "bsp_key.h"

#include "bsp_gpio.h"

#include "bsp_delay.h"

/*key初始化函式

*/void key_init(void)

/* 獲取按鍵值

0:無按鍵按下 其他值:對應按鍵值

*/int key_getvalue(void)

}else if (gpio_pinread(gpio5,1) == 1)

return ret;

}

#ifndef __bsp_key_h

#define __bsp_key_h

#include "imx6ul.h"

enum keyvalue;

/* 函式宣告 */

void key_init(void);

int key_getvalue(void);

#endif

#include "bsp_clk.h"

#include "bsp_delay.h"

#include "bsp_led.h"

#include "bsp_key.h"

/* * @description : mian函式

* @param : 無

* @return : 無

*/int main(void)

} }return 0;

}

IMX6ULL裸機學習(8) 清除BSS段

bss段 bss segment 通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。bss是英文block started by symbol的簡稱。bss段屬於靜態記憶體分配。修改main函式如下所示 include uart.h include led.h int mydata 123...

IMX6ULL啟動流程

假設板子設定為sd tf卡啟動,boot rom程式會做什麼?把程式從sd tf卡讀出來,執行。從 讀?從sd tf卡讀,這需要先初始化sd tf卡 根據efuse或gpio的設定初始化sd tf卡。讀到 去?讀到記憶體即ddr去,這需要先初始化ddr。除了初始化啟動裝置 初始化ddr,還需要初始化...

IMX6ULL學習筆記(一)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。bin檔案前面要新增頭部 ivt boot data dcd資料 由官方手冊可知要燒寫到sd卡中的load.imx檔案在sd卡中的起始位址是0x400,也就是1...