[其他ST产品] STM32G431CBU6如何设置IO口的方向?

[复制链接]
2165|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 | 显示全部楼层
用寄存器的,都是大神
1223657347 发表于 2021-9-9 21:53 | 显示全部楼层
不需要修改io方向,将io初始化为开漏输出即可。
coshi 发表于 2021-10-5 17:55 | 显示全部楼层
设置寄存器不就行了吗
aoyi 发表于 2021-10-5 18:02 | 显示全部楼层
可以按照五楼的试试看
drer 发表于 2021-10-5 18:08 | 显示全部楼层
用cube来设置啊
gwsan 发表于 2021-10-5 18:12 | 显示全部楼层
一直搞不清楚io的方式
kxsi 发表于 2021-10-5 18:15 | 显示全部楼层
本身有内部的上拉电阻吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

493

主题

3361

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部