90
1220
4112
中级工程师
目标是自己编写一个简单的寄存器地址映射程序,来控制GPIO口输出高低电平
首先来简单的介绍一下控制stm32IO口的基本操作
使用特权
546866086292b81044.png (141.73 KB )
下载附件
2021-4-26 10:44 上传
#define PERIPH_BASE ((unsigned int)0x40000000)//强制转换为32位的
/*APB2 总线基地址 */ #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
/*GPIOB外设基地址*/ #define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
/* AHB总线基地址 */ #define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)
/*RCC外设基地址*/ #define RCC_BASE (AHBPERIPH_BASE + 0x1000)
6929360862d20a2564.png (208.83 KB )
2021-4-26 11:01 上传
9444860862e0ab96db.png (111.27 KB )
2021-4-26 11:05 上传
/*RCC的AHB1时钟使能寄存器地址,强制转换成指针*/ #define RCC_APB2ENR *(unsigned int*)(RCC_BASE+0x18)//这里是把这个数据强制转换为一个32位的指针地址 unsigned int 就是转换为32位的意思
4302160862f4003332.png (112.48 KB )
2021-4-26 11:10 上传
9793360867cbfe52e1.png (151.13 KB )
2021-4-26 16:41 上传
/* GPIOB寄存器地址,强制转换成指针 */ #define GPIOB_CRL *(unsigned int*)(GPIOB_BASE+0x00) #define GPIOB_CRH *(unsigned int*)(GPIOB_BASE+0x04)
4607360867d318fee6.png (178.15 KB )
2021-4-26 16:43 上传
7047660867db022c75.png (200.83 KB )
2021-4-26 16:45 上传
2840760867e30003a3.png (152.82 KB )
2021-4-26 16:47 上传
发表回复 本版积分规则 回帖后跳转到最后一页
1
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号