一、点亮一个LED灯
复位后,I/O口被配置成浮空输入模式,JTAG引脚被置于输入上拉或下拉模式。
1.IO口的八种输入/输出模式
输入浮空:
输入上拉:
输入下拉:
模拟输入:
开漏输出:
推挽输出:
推挽式复用功能:
开漏复用功能:
IO口可以单独编程,但是IO口寄存器必须要按32位字被访问。每组IO口都由7个寄存器来控制,分别是:
配置模式的两个32位的端口配置寄存器CRL和CRH;CRL低8位,每两位控制一个引脚
MOD:输入模式,3种不同速率的输出模式
CNF:8种输入输出模式
两个32位的数据寄存器IDR和ODR;
1个32位的置位/复位寄存器BSRR;
1个16位的复位寄存器BRR;
1个32位的锁存寄存器LCKR;
常用的IO口寄存器只有4个:CRL、CRH、IDR、ODR;
CRL、CRH控制着每个IO口的模式及输出速率。
CRL控制每组IO口的低8位,CTH控制每组IO口的高8位。
比如说,我们要实现PORTC的11位是上拉输入和12位是推挽输出。
首先使能PORTC时钟,然后设置输入输出模式。
2.关于I/O口相关的功能
单独的位设置或者位清除
外部中断/唤醒线:所有的IO都有外部中断能力,为了使用外部中断线,端口必须配置成输入模式。
复用功能(AF)
软件重新映射I/O复用功能
GPIO锁定机制
输入配置
输出配置
复用功能配置
模拟输入配置
外设的GPIO配置