實驗記錄三 通用輸入輸出(GPIO)

之前把所有程序都跑了一次後,得到了導師下一步的安排。如下:

1.編寫一個程序,實現在LCD上顯示一個萬年曆,包括年月日 星期 還有室內的溫度。2.編寫一個程序,將原來的交通燈改爲跑馬燈。

期限是這學期。

好吧。一學期編兩個程序。還真是從0做起。雖然是用C編程,但是用的庫函數卻是相應工程開發自帶的API。於是,開始從第一個基礎程序做起,以便熟悉相應的API函數操作。

GPIO 通用輸入輸出函數 函數名真長 參數也是兩三個以上,不習慣。忙乎了大概兩三個小時才基本把常用的六七個函數弄明白,真是白癡透了。此後再去看第一個實驗源代碼,勉強能夠明白。也能在源代碼的基礎上修改,以達到單個輸入控制多個輸出。同時也能基本明確GPIO端口指的什麼了。不過還是比較模糊,這個還呆商榷。此外,創建了屬於自己的第一個keil項目文件,也算值得一記。雖然還是該程序達不到預期目的,失敗了,也算是前進了一小步。爲自己加油吧!堅持!奮鬥

//GPIO例程:兩隻LED交替閃爍
#include "systemInit.h"

//定義函數
#define	 GPIOPinTypeIn		GPIOPinTypeGPIOInput
#define	 GPIOPinTypeOut		GPIOPinTypeGPIOOutput



//定義LED
#define LED_PERIPH		SYSCTL_PERIPH_GPIOA
#define	LED_PORT		GPIO_PORTG_BASE
#define LED_PINS		GPIO_PIN_2|GPIO_PIN_3


//主函數(程序入口)
int main(void)
{
//	unsigned char ucVal;
	unsigned int ucVal;


	jtagWait();
	clockInit();


	SysCtlPeripheralEnable(LED_PERIPH);
//	GPIOPinTypeOut(LED_PORT,LED_PINS);
	GPIODirModeSet(LED_PORT,LED_PINS,GPIO_DIR_MODE_OUT);	
												// 	設置連接LED的IO口爲輸出
    GPIOPadConfigSet(LED_PORT,LED_PINS,GPIO_STRENGTH_8MA,GPIO_PIN_TYPE_STD_WPU);	
											// 	設置輸出IO口的驅動能力,8mA,帶弱上拉輸出
//	ucVal=(0<<2)|(1<<3);
	ucVal=0x00;


	for(;;)
	{
		GPIOPinWrite(LED_PORT,LED_PINS,ucVal);
	//	GPIOPinWrite(LED_PORT,LED_PINS,  0x00);	
	//	ucVal ^=(1<<2)|(1<<3);
		ucVal=0xff;
		SysCtlDelay(150*(TheSysClock/3000));
	//	GPIOPinWrite(LED_PORT,  LED_PINS,  0xff);	
	}
}
失敗的代碼,記錄一下。明天繼續~
發佈了53 篇原創文章 · 獲贊 6 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章