[技术问答]

HC32F005的GPIO开漏输出疑问

[复制链接]
810|3
手机看帖
扫描二维码
随时随地手机跟帖
kevicki|  楼主 | 2021-2-2 11:41 | 显示全部楼层 |阅读模式
本帖最后由 kevicki 于 2021-2-2 11:57 编辑

之前用stm8和stm32,当GPIO配置成“带上拉开漏输出”的时候,MCU将端口置高,当有外部设备将端口拉低时(I2C的典型场景),是不需要将GPIO的方向设置为“输入”的,直接可以从端口in寄存器读取端口电平。

现在换到HC32F005,上午在调这个发现原来的程序不适用了,才发现好像HC32F005必须将端口设置成“输入”,才可以在IN寄存器中读取端口电平,如果配置成“开漏输出”的话,IN寄存器只会跟随OUT电平变化而变化。

有没有了解的大佬确认一下,是否是这样?

请问

使用特权

评论回复
martinhu| | 2021-2-2 13:08 | 显示全部楼层
你是做模拟I2C吗?
因为F005的GPIO设计比较简单,所有只有当GPIO设置为输入的时候才可以读取,与开漏设置没关系。
其他型号,比如L136/F030,L176等,可以在输出的时候读取电平

使用特权

评论回复
kevicki|  楼主 | 2021-2-2 13:55 | 显示全部楼层
martinhu 发表于 2021-2-2 13:08
你是做模拟I2C吗?
因为F005的GPIO设计比较简单,所有只有当GPIO设置为输入的时候才可以读取,与开漏设置没 ...

嗯,我也问过了华大的技术,确实是这样。模拟i2c就要注意一下了

使用特权

评论回复
xyz549040622| | 2021-2-2 19:26 | 显示全部楼层
反常规的设计,值得注意,这点应该在数据手册中指出的吧。

使用特权

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

本版积分规则

37

主题

158

帖子

0

粉丝