IO外设编程
最后发布时间:2021-03-10 22:44:41
浏览量:
main(){
//启用时钟模块
SIM_SCG5 = SIM_SCGC5 | (1<<12);
//指定用作GPIO
PORTD_PCR0 = 0X0100;
...
PORTD_PCR7 = 0X0100;
//设置GPIO为输出
GPIOD_PDDR = 0xFF;
//最低的8个bit为0,八盏灯为亮
GPIOD_PDOR = 0x00;
}
启用时钟模块
SIM(系统集成模块) enable correspond GPIO port clock
将12位设置为1,开启时钟
SIM_SCG5 = SIM_SCGC5 | (1<<12);
配置引脚功能为GPIO
set GPIO PCR enable correspond port function as GPIO
每一个物理上存在的引脚,都有自己独立的寄存器来配置它的功能。
灰色的是忽略保留的bit,白色是对功能进行配置。MUX
是000~111有8个选择,对应的是引脚的8个功能。
引脚的ALT1~ATL7共8个功能。
PORTD_PCR0 = 0X0100;
...
PORTD_PCR7 = 0X0100;
选用引脚的第一个功能。
对GPIO模块的寄存器进行编程
GPIO PDDR set GPIO as output, PDOR output 0 and 1'
每一个io时由若干个寄存器控制的
- GPIOx_PDOR (Port Data Output Register)
- GPIOx_PDIR (Port Data Input Register)
- GPIOx_PDDR (Port Data Direction Register)
- GPIOx_PSOR (Port Set Output Register)
- GPIOx_PSOR (Port Set Output Register)
- GPIOx_PCOR (Port Clear Output Register)
这些寄存器编成了很多组
//设置GPIO为输出
GPIOD_PDDR = 0xFF;
//最低的8个bit为0,八盏灯为亮
GPIOD_PDOR = 0x00;