完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
STM32端口IO方向设置问题
STM32端口寄存器配置 STM32 的 IO 口可以由软件配置成如下 8 种模式: 1 、输入浮空 2 、输入上拉 3 、输入下拉 4 、模拟输入 5 、开漏输出 6 、推挽输出 7 、推挽式复用功能 8 、开漏复用功能 每个 IO 口可以自由编程,但 IO 口寄存器必须要按 32 位字被访问。 STM32 的很多 IO 口都 是 5V 兼容的,这些 IO 口在与 5V 电平的外设连接的时候很有优势,具体哪些 IO 口是 5V 兼容 的,可以从该芯片的数据手册管脚描述章节查到( I/O Level 标 FT 的就是 5V 电平兼容的)。 STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:配置模式的 2 个 32 位的端口 配置寄存器 CRL 和 CRH ; 2 个 32 位的数据寄存器 IDR 和 ODR ; 1 个 32 位的置位 / 复位寄存器 BSRR ;一个 16 位的复位寄存器 BRR ; 1 个 32 位的锁存寄存器 LCKR ;这里我们仅介绍常用 的 几个寄存器,我们常用的 IO 端口寄存器只有 4 个: CRL 、 CRH 、 IDR 、 ODR 。 CRL 和 CRH 控制着每个 IO 口的模式及输出速率。 STM32 的 IO 口位配置表如表 6.1.1 所示: 该寄存器的复位值为 0X4444 4444,从图 6.1.1 可以看到,复位值其实就是配置端口为浮空 输入模式。从上图还可以得出:STM32 的 CRL 控制着每组 IO 端口(A~G)的低 8 位的模式。 每个 IO 端口的位占用 CRL 的 4 个位,高两位为 CNF,低两位为 MODE。这里我们可以记住几 个常用的配置, 比如 0X0 表示模拟输入模式(ADC 用)、0X3 表示推挽输出模式(做输出口用, 50M 速率)、0X8 表示上/下拉输入模式(做输入口用)、0XB 表示复用输出(使用 IO 口的第二 功能,50M 速率)。 CRH 的作用和 CRL 完全一样,只是 CRL 控制的是低 8 位输出口,而 CRH 控制的是高 8 位输出口。这里我们对 CRH 就不做详细介绍了。 给个实例,比如我们要设置 PORTC 的 11 位为上拉输入,12 位为推挽输出。代码如下: GPIOC-》CRH&=0XFFF00FFF; //清掉这 2 个位原来的设置,同时也不影响其他位的设置 GPIOC-》CRH|=0X00038000; //PC11 输入,PC12 输出 GPIOC-》ODR=1《《11; //PC11 上拉 通过这 3 句话的配置,我们就设置了 PC11 为上拉输入,PC12 为推挽输出。 IDR 是一个端口输入数据寄存器,只用了低 16 位。该寄存器为只读寄存器,并且只能以 16 位的形式读出。该寄存器各位的描述如图 6.1.2 所示: |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:35 , Processed in 0.882681 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号