實驗開發版:s5pv210
1、什麼是gpio?
general purpose input output (通用輸入/輸出)簡稱為gpio,屬於晶元引腳的一部分。
嵌入式系統中常常有數量眾多,但是結構卻比較簡單的外部裝置/電路,對這些裝置/電路有的需要cpu為之提供控制手段,有的則需要被cpu用作輸入訊號。而且,許多這樣的裝置/電路只要求一位,即只要有開/關兩種狀態就夠了,比如燈亮與滅。對這些裝置/電路的控制,使用傳統的序列口或並行口都不合適。所以在微控制器晶元上一般都會提供乙個「通用可程式設計io介面」,即gpio。
2、點亮led的原因
點亮led要求正極與負極之間有一定的正向電壓差。
熄滅led就是讓正極與負極之間沒有電壓差。
3、查詢原理圖
d22:正極接3.3v,負極接引腳gpj0_3。
d23:正極接3.3v,負極接引腳gpj0_4。
d24:正極接3.3v,負極接引腳gpj0_5。
d25:正極接3.3v,負極接引腳pwmtout1(gpd0_1)。
d26:正極接5v,負極接地。
可以通過程式設計控制gpio引腳輸出低電平,產生電壓差。
4、查詢資料手冊
設定gpj0con控制暫存器,gpj0_3、gpj0_4、gpj0_5引腳為output工作模式,使其能輸出電壓。
設定gpj0dat資料暫存器,gpj0_3、gpj0_4、gpj0_5引腳相應位為0(低電平)。
5、點亮led的步驟:
(1)設定gpj0con控制暫存器,gpj0_3、gpj0_4、gpj0_5引腳為output工作模式,使其能輸出電壓。
(2)設定gpj0dat資料暫存器,gpj0_3、gpj0_4、gpj0_5引腳相應位為0(0為低電平,1為高電平)。
6、彙編**實現led流水燈
.global _start//鏈結屬性改為外部
_start:
//配置gpj0_3 ~ gpj0_5為輸出模式
ldr r0, =0xe0200240
ldr r1, =0x00111000
str r1, [r0]
//配置
gpd0_1
為輸出模式
ldr r0, =0xe02000a0
ldr r1, =0x00000010
str r1, [r0]
loop_led:
//配置
gpj0_3
為低電平
ldr r0, =0xe0200244
ldr r1, =((0<<3) | (1<<4) | (1<<5))
str r1, [r0]
//延時
bl delay
//配置
gpj0_4
為低電平
ldr r0, =0xe0200244
ldr r1, =((1<<3) | (0<<4) | (1<<5))
str r1, [r0]
//延時
bl delay
//配置
gpj0_5
為低電平
ldr r0, =0xe0200244
ldr r1, =((1<<3) | (1<<4) | (0<<5))
str r1, [r0]
//延時
bl delay
//配置
gpj0_3 ~ gpj0_5
為高電平
ldr r0, =0xe0200244
ldr r1, =((1<<3) | (1<<4) | (1<<5))
str r1, [r0]
//配置
gpd0_1
為低電平
ldr r0, =0xe02000a4
ldr r1, =(0<<1)
str r1, [r0]
//延時
bl delay
//配置
gpd0_1
為高電平
ldr r0, =0xe02000a4
ldr r1, =(1<<1)
str r1, [r0]
b loop_led
// 延時功能
delay:
ldr r1, =0
ldr r2, =7777777
loop_delay:
sub r2, r2, #1
cmp r1, r2
bne loop_delay
mov pc, lr
7、c語言**實現流水燈
// 暫存器巨集定義
#definegpj0con(0xe0200240)
#definegpj0dat(0xe0200244)
#define gpd0con(0xe02000a0)
#define gpd0dat(0xe02000a4)
#define rgpj0con(*(volatile unsigned int *)gpj0con)
#define rgpd0con(*(volatile unsigned int *)gpd0con)
#definergpj0dat(*(unsigned volatile int *)gpj0dat)
#definergpd0dat(*(unsigned volatile int *)gpd0dat)
// 延時函式
void delay_time(void)
void illumine_led(void)
}
裸機開發之點亮LED
基於x210開發板的led燈點亮。查閱底板原理圖可以得到,四個led引腳分別為 其中pwmtout1引腳與核心板的gpd0 1引腳相連,所以可以通過操作gpd0 1引腳來操作d25。gpio,general purpose input output的簡稱,屬於晶元上的一部分引腳,這部分引腳可以被程式...
ARM裸機led控制
define gpj0con 0xe0200240 define gpj0dat 0xe0200244 global start 將 start設定為外部屬性 start ldr r0,0x11111111 偽指令編譯器判斷是否為合法立即數 一般都是偽指令 ldr r1,gpj0con str r0...
ARM邏輯 點亮LED
一.led的工作特性及原理圖 d26為電源指示燈 其他led正極接到vdd3.3v 負極接到4個io口 要點亮led要將負極所接到額io口為低電平 發現gpio 通用輸入輸出 口之後需要去找到控制響應io的暫存器 gpio就是晶元的引腳 作為gpio的這類引腳,功能和特點是可以被程式設計控制它的工作...