打印
[其他ST产品]

STM32G431CBU6如何设置IO口的方向?

[复制链接]
1661|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2021-9-9 10:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在使用STM32G431CBU6时,需要使用两个IO口模拟I2C通信,需要像F103系列一样如下设置io口方向:
#define MPU_SDA_IN()  {GPIOA->CRL&=0XFFFF0FFF;GPIOA->CRL|=8<<12;}
#define MPU_SDA_OUT() {GPIOA->CRL&=0XFFFF0FFF;GPIOA->CRL|=3<<12;}

但是出现报错CRL,我顺势查找了stm32g4xx.h文件,与stm32f1xx.h文件对比,发现g确实没有CRL,CRH的寄存器字段,所以不知该如何像F103一样配置IO口方向?
还请各位大佬指教。

使用特权

评论回复
沙发
classroom| | 2021-9-9 10:59 | 只看该作者
从手册上看,可以改变寄存器的某些位,如附图所示。 没有直接对应的函数或定义,自己对寄存器操作也行。

使用特权

评论回复
板凳
两只袜子| | 2021-9-9 11:00 | 只看该作者
如果不是特别喜好寄存器操作,建议使用Cubemx进行配置。这里涉及到2个寄存器,它们是GPIOx_MODER和GPIOx_OTYPER。至于是否使用内部上下拉电阻,还涉及到GPIOx_PUPDR寄存器,你稍微看看相关内容。

使用特权

评论回复
地板
match007| | 2021-9-9 13:14 | 只看该作者
用寄存器的,都是大神

使用特权

评论回复
5
1223657347| | 2021-9-9 21:53 | 只看该作者
不需要修改io方向,将io初始化为开漏输出即可。

使用特权

评论回复
6
coshi| | 2021-10-5 17:55 | 只看该作者
设置寄存器不就行了吗

使用特权

评论回复
7
aoyi| | 2021-10-5 18:02 | 只看该作者
可以按照五楼的试试看

使用特权

评论回复
8
drer| | 2021-10-5 18:08 | 只看该作者
用cube来设置啊

使用特权

评论回复
9
gwsan| | 2021-10-5 18:12 | 只看该作者
一直搞不清楚io的方式

使用特权

评论回复
10
kxsi| | 2021-10-5 18:15 | 只看该作者
本身有内部的上拉电阻吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

272

主题

1230

帖子

3

粉丝