新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > cortex M3S811学习笔记-GPIO-INT

cortex M3S811学习笔记-GPIO-INT

作者:时间:2012-10-11来源:网络收藏

首先是通用IO口,不管学什么单片机,IO口都是最重要和最好学的。重要是因为他是单片机与处围器件的接口,同样也是我们通常所说的人机接口,好学是因为它的控制容易,无非就是使能端口,设方向,然后就是写数据或是读数据了(根据你设的方向而定),这款超强的arm核的32位的小东西的IO口也有不同之处,毕竟是ARM核,IO的寄存器也丰富了不少。下面就来看看与IO口有关的函数。

1.按顺序来,先使能IO口。只有使能了他才能用,所以当然是第一步了。
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA)

这就是使能A端口函数,即A端口可以用了,他的大门向你敞开了 。
A端口不是在物理特征上有6个脚吗?GPIOA就代表那6个脚。
那么M3有多少个其它的通用IO口呢,数一数就知道。想用他就要了解好他。PA 0-5 PB 0-7 PC 0-7 PD 0-7 PE 0-2 ==========有规律不,好像有点乱,这样看, 51里是这样的,P0,P1,P2,P3//
同样这里是PA,PB,PC,PD.那PE呢,这么哪来的?因为我们的PA只有6个管脚了,所以说他把自己的两只脚给别人了(PE1,2)。和51一样,都是32个脚。
这就记住了吧,PA六个脚 PE 两个脚,PE两个脚还可以当电机跑(因为他的第二功能是pwm4,pwm5)。

其它的脚就不用说了,8个是电源和地,还有复位,两个接晶振啊,LD0稳压块的脚啊。这一共就去了44个脚,还有四个脚就是AD接口了AD0—AD3.刚才使能了端口,端口就活了,能用了,但是那函数单词太长,不会记。怎么办,就搞个宏定义喽,搞个自己认识的。
#define DEVICEEN SysCtlPeripheralEnable
使能设备,这样就搞定了,

第二步是干啥呢,你是要干嘛,最普通的,你是接按钮(input),还是接led(output)呢?
对就是置方向了,方向就三个.
void GPIOPinTypeGPIOInpu (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeGPIOOutput (unsigned long ulPort, unsigned char ucPins)
ulPort 是哪个端口, ucPins是哪一个或哪几个脚
函数名太长了,还是搞个自己熟悉的宏定义
#define GPIOIN GPIOPinTypeGPIOInpu
#define GPIOOUT GPIOPinTypeGPIOOutput
现在就举个例:把PA的第0脚设为输出,第二脚设为输入。

GPIOOUT( GPIO_PORTA_BASE, GPIO_PIN_0)
GPIOIN ( GPIO_PORTA_BASE, GPIO_PIN_2)

当然我还是认为GPIO_PORTA_BASE, GPIO_PIN_2这些东西太长了,
毕竟是要经常打交道的东西,我再搞个宏定义:
#define PA GPIO_PORTA_BASE
#define PIN2 GPIO_PIN_2

那上面的语句就变成了,GPIOIN(PA,PIN2);
感觉清爽了不少( 注意:自己定义的宏自己一定要记得)


第三步,方向也设了,那就剩读数,写数了。
void GPIOPinWrite(unsigned long ulPort, unsigned char ucPins, unsigned char ucVal);
long GPIOPinRead(unsigned long ulPort, unsigned char ucPins)

接着宏定义:
#define WRITE GPIOPinWrite
#define READ GPIOPinRead

现在就可以点灯了,如果你的PA0接了一个led,(阴极接地)
只需要此语句就能将它点亮:WRITE(PA,PIN0,1);



关键词: cortex M3S811 GPIO-INT

评论


相关推荐

技术专区

关闭