实验记录三 通用输入输出(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);	
	}
}
失败的代码,记录一下。明天继续~

你可能感兴趣的:(Cortex-M3)