×
单片机 > 单片机程序设计 > 详情

cortex M3S811学习笔记-GPIO-INT

发布时间:2020-09-02 发布时间:
|

首先是通用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);



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM基础知识八