端口绑定公式: 每一位绑定唯一的32位地址:
SRAM区 0x2000 0000 ~ 0x200f ffff 1M (n = 1~7)
AliasAddr = 0x22000000 + ((A-0x2000 0000)*8 +n)*4
= 0x22000000 + (A-0x2000 0000)*32 +n*4
片上外设 0x4000 0000 ~ 0x400f ffff 1M
AliasAddr = 0x42000000 + ((A- 0x4000 0000)*8 +n)*4
= 0x42000000 + (A - 0x4000 0000)*32 +n*4
A: 基地址+偏移地址
简单化绑定公式:
#define BitBand(addr,num) *((volatile unsigned long *)((addr& 0xf0000000)+0x2000000+((addr&0xfffff)
<<5)+(num<<2)))
#define PAout(n) BitBand(GPIOA_BASE + 0x0c,n)
use:
PAout(0) = 1; //位0输出高电平
PAout(0) = 0; //位0输出低电平
时间: 2024-11-08 10:19:16