[应用相关] stm32单片机双向IO口配置

[复制链接]
2547|16
 楼主| tpgf 发表于 2024-6-26 07:47 | 显示全部楼层 |阅读模式
配置 stm32 的 IO 口为准双向 IO 口的方法就是
软件上 :
    将需要配置我的准双向IO 口的引脚配置为开漏输出
    static void GPIO_Init(void)
    {
      RCC->APB2ENR|=1<<2; // 使能 PORTA 时钟
      GPIOA->CRL&=0XFFFFF0FF;
      GPIOA->CRL|=0X00000700; //PA2 为开漏输出
    }
硬件上 :
    接上拉电阻
测试平台为 st M3 内核单片机,此方法为网络查询,暂未测试验证
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/hshqing/article/details/139802702

理想阳 发表于 2024-6-28 14:14 | 显示全部楼层
没见过这么用的,不是51单片机才双向IO嘛。
610u 发表于 2024-6-29 01:00 | 显示全部楼层
需要将所需的引脚配置为开漏输出
4y1b3 发表于 2024-6-30 19:45 | 显示全部楼层
软件配置
将引脚配置为开漏输出,代码如下:

c
复制代码
static void GPIO_Init(void)
{
    RCC->APB2ENR |= 1 << 2;        // 使能 PORTA 时钟
    GPIOA->CRL &= 0xFFFFF0FF;      // 清除 PA2 配置位
    GPIOA->CRL |= 0x00000700;      // 将 PA2 配置为开漏输出模式
}
suncat0504 发表于 2024-6-30 22:12 | 显示全部楼层
实际测试如何?感觉在双向处理上,不如51单片机来的快捷方便。
suncat0504 发表于 2024-6-30 22:13 | 显示全部楼层
51单片机,一旦设置好,后面直接读写就行,不需要修改设置,重新初始化,来回转换。
t1ngus4 发表于 2024-7-11 20:14 | 显示全部楼层
正常配置成输出就可以了
su1yirg 发表于 2024-7-11 20:19 | 显示全部楼层
通过读取和写入相应的寄存器来实现对双向IO口的数据读取和写入操作。可以通过读取输入数据寄存器来获取引脚的输入状态,通过写入输出数据寄存器来设置引脚的输出状态
ex7s4 发表于 2024-7-11 21:20 | 显示全部楼层
其实配置成输出,可以再做输入读取的
cen9ce 发表于 2024-7-11 22:30 | 显示全部楼层
我觉得看一下模拟I2C的方式就可以了吧
q1ngt12 发表于 2024-7-11 23:45 | 显示全部楼层
首先确定要配置为双向IO口的引脚,可以查阅STM32芯片的引脚分配表或者datasheet来确认引脚编号和对应的功能
w2nme1ai7 发表于 2024-7-12 08:28 | 显示全部楼层
使用寄存器来配置引脚的模式,将引脚设置为通用输入输出模式(General Purpose Input/Output,GPIO)。可以通过设置相应的寄存器位来选择引脚的输入/输出模式、推挽/开漏输出等
tax2r6c 发表于 2024-7-12 09:22 | 显示全部楼层
根据需要设置引脚的初始状态,可以将引脚设置为高电平、低电平或者浮空状态
y1n9an 发表于 2024-7-12 11:33 | 显示全部楼层
如果需要在引脚状态发生变化时触发中断,可以配置相应的中断使能和中断触发条件
zhizia4f 发表于 2024-7-12 12:40 | 显示全部楼层
具体的配置步骤和寄存器设置会根据不同的STM32系列和型号而有所不同,建议查阅相应的芯片手册和参考资料,以获取详细的配置信息和示例代码
lamanius 发表于 2024-7-12 13:58 | 显示全部楼层
我觉得用寄存器比较麻烦吧,不如用库函数来操作了

wang6623 发表于 2024-7-30 20:38 | 显示全部楼层
需要配置我的准双向IO 口的引脚配置为开漏输出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2384

主题

17636

帖子

21

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