完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
stm32之GPIO[size=13.63636302948px]
STM32有5组GPIO口,GPIOA GPIOB GPIOC GPIOD GPIOE 每个GPIO端口有: 2个配置寄存器GPIOx_CRL, GPIOx_CRH(32位); 2个数据寄存器GPIOx_IDR, GPIOx_ODR(32位); 1个置位/复位寄存器GPIOx_BSRR(32位); 1个复位寄存器GPIOx_BRR(16位); 1个锁定寄存器GPIOx_LCKR(32位); 输入模式: —输入浮空:顾名思义也就是输入什么信号才是什么信号,对于浮空输入要保证有明确的输入信号。 ─ 输入上拉:上拉输入模式:区别在于没有输入信号的时候默认输入高电平(因为有弱上拉) ─ 输入下拉:下拉输入模式:区别在于没有输入信号的时候默认输入低电平(因为有弱下拉) ─ 模拟输入:用于模拟量输入;仅仅拥有ADC 输出模式: ─ 开漏输出:随IO变化 ─ 推挽式输出:推挽具有比较好的驱动能力。 ─ 推挽式复用功能 ─ 开漏复用功能
[size=13.63636302948px]位绑定:即找到需要绑定的寄存器地址;选择具体的那个位(8位中的一位); [size=13.63636302948px] 宏观看:就是将需要绑定的寄存器中的具体某一位映射到具体的一个32位的地址中,通过操作这个32位地址来操作寄存器的位;这样mcu运行更快; [size=13.63636302948px]地址绑定公式: [size=13.63636302948px] SRAM区: 0x2000 0000 到 0x200f ffff 1M大小空间用于绑定作用; AliasAddr = 0x2200 0000 + ((A-0x2000 0000)*8 + n)*4 (n属于0~7,这点待确定;下面第二段代码有例子,) = 0x2200 0000 + (A-0x2000 0000)*32 + 4n 此处A属于:0x2000 0000 到 0x200f ffff [size=13.63636302948px] 片上外设: 0x4000 0000 ~ 0x400f ffff 1M大小; AliasAddr = 0x4200 0000 + ((A-0x4000 0000)*8+n)*4 = 0x4200 0000 + (A-0x400 0000)*32 + 4*n 此处A属于:0x4000 0000 到 0x400f ffff [size=13.63636302948px]
使用#define(宏)强大功能优化代码:
|
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 15:46 , Processed in 1.069212 second(s), Total 35, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
26246