单片机工作前需要使能系统时钟
1 | MAP_SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN); |
可以将系统时钟设置到50Mhz;
时钟的学习参见时钟
接下来使能GPIO接口
1 | //使能F组外设时钟 |
接下来设置GPIO接口模式
1 | //表示将F口的3引脚设置为输出 |
接下来设置输出
1 | //设置 |
GPIO函数一共有三种
- 配置GPIO pins的函数
- 处理中断的函数
- 获取pins value的函数
配置32和TI的方式就是不一样的,32的GPIO是用结构体进行配置,TI则使用函数来进行配置。
TI的普通配置只需要进行GPIO外设使能和方向控制即可。也不是说前面说到的功能模式就不能配置了,如果有需要可以进行其他类型的配置。
如果要进行端口高低电平的输出控制,32和TI也是一样的调用函数来进行配置,分别是:GPIO_SetBits(GPIOE,GPIO_Pin_5);
和 GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
注意:TI的输出高低电平使用的是同一个函数GPIOPinWrite(),对于32则使用的是两个函数:GPIO_SetBits()和GPIO_ResetBit()即可输出高低电平。TI呢,则不是这样的,就连入口参数也不是和32一样那么简单,GPIOPinWrite()入口参数就有三个,分别是GPIO_PORTx_BASE,GPIO_PIN_x,和0(低电平时候为0,但是高电平时候不是1,而是GPIO_PIN_x)。例如PF1输出高电平 :
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
输入输出的模式一般不用管,但应了解浮空输入 上拉输入 下拉输入 模拟输入 开漏输出 推挽输出 复用推挽输出 复用开漏输出
附:延时函数:
1 | SysCtlDelay ( SysCtlClockGet() * 秒数 / 3); |
怎样读入呢?
1 | ReadPin1 = GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_4);//检测 |