极海APM32F030 读正交编码器 引脚GPIO模式设置成什么模式?

[复制链接]
4275|21
 楼主| Aist2018 发表于 2023-9-21 13:51 | 显示全部楼层 |阅读模式
读取正交编码器输入,GPIO引脚配置成什么模式?GPIO_MODE_AF还是GPIO_MODE_IN?
 楼主| Aist2018 发表于 2023-9-21 14:01 | 显示全部楼层
我问AI得到的答案是一般来说你需要将 GPIO 引脚配置为输入模式,即 GPIO_MODE_IN。和人对对。
 楼主| Aist2018 发表于 2023-9-21 15:56 | 显示全部楼层
应用场景为定时器输入捕获编码器测速
ifxz0123 发表于 2023-9-21 19:46 | 显示全部楼层
AF,正交编码属于TIM的的一种模式,属于定时器AF功能
 楼主| Aist2018 发表于 2023-9-22 09:29 | 显示全部楼层
问错AI,是个写作大模型,CSDN的AI回答应该靠谱一点
sesefadou 发表于 2023-10-5 15:09 | 显示全部楼层
需要设置引脚的GPIO模式为输入模式。正交编码器通常使用两个通道来检测旋转方向和计数脉冲,因此你需要配置两个GPIO引脚作为输入。这两个引脚通常被称为通道A和通道B。
nomomy 发表于 2023-10-5 15:20 | 显示全部楼层
使用的是正交编码器模式,那么需要将GPIO引脚配置为定时器输入模式。
wilhelmina2 发表于 2023-10-5 15:31 | 显示全部楼层
需要将引脚GPIO模式设置成AF(Alternate Function)模式。这是因为正交编码器的信号通常需要连接到GPIO的复用功能引脚上,这些引脚在AF模式下可以被配置为不同的功能,包括连接至正交编码器。
juliestephen 发表于 2023-10-5 16:02 | 显示全部楼层
正交编码器输出两组相位差90度的方波信号(A和B),通过检测这些信号的相位差可以计算出轴的位置或速度。霍尔编码器输出的是两个相位差90度的脉冲信号和一个方向信号,通过读取这些信号可以获得轴的位置或速度信息。
pl202 发表于 2023-10-5 17:33 | 显示全部楼层
通常情况下,正交编码器的信号由两个相位差异为90度的脉冲信号组成,通常称为A相和B相。以下是一种常见的设置方式:

将A相信号连接到一个GPIO引脚上,将B相信号连接到另一个GPIO引脚上。
将这两个GPIO引脚设置为输入模式。
youtome 发表于 2023-10-5 20:27 | 显示全部楼层
可以使用GPIOA接口的4号和5号引脚来控制正交编码器的输入信号
1988020566 发表于 2023-10-6 22:52 | 显示全部楼层
如果你的编码器输出是开漏或集电极开路的,你可能需要选择上拉或下拉输入模式。如果编码器的输出是推挽输出的,那么浮空输入模式可能更合适。同时,如果你需要通过ADC读取编码器的信号,那么应将引脚设置为模拟输入模式。
iyoum 发表于 2023-10-8 15:25 | 显示全部楼层
读取正交编码器的引脚GPIO模式通常设置为推挽模式或开漏模式。
usysm 发表于 2023-10-8 15:37 | 显示全部楼层
具体使用哪种模式取决于正交编码器的输出信号类型。
nomomy 发表于 2023-10-8 15:53 | 显示全部楼层
可以选择以下模式:

输入模式:
上拉输入(GPIO_Mode_IPU):在默认状态下,读取的GPIO引脚为高电平。
下拉输入(GPIO_Mode_IPD):在默认状态下,读取的GPIO引脚为低电平。
浮空输入(GPIO_Mode_IN_FLOATING):电压表测量引脚电压为不确定值,一般作为IIC、USART的输入管脚应用。
模拟输入模式(GPIO_Mode_AIN):在使用ADC外设的时候,将管脚配置成此模式,这样外部模拟信号直接进入MCU。
sesefadou 发表于 2023-10-8 16:36 | 显示全部楼层
将引脚设置为AF模式,你就可以使用GPIO的复用功能来配置引脚为正交编码器接口。例如,如果你使用的是Quadrature Encoder Interface (QEI),你可以使用GPIO_InitTypeDef结构体中的AFIO_MAP[n]位来配置引脚。
tabmone 发表于 2023-10-8 16:49 | 显示全部楼层
可以配置GPIO引脚的中断以便在编码器发生计数时触发中断服务程序。
geraldbetty 发表于 2023-10-8 17:02 | 显示全部楼层
具体的GPIO模式设置取决于您选择的引脚和编码器的连接方式。
febgxu 发表于 2023-10-8 17:39 | 显示全部楼层
一般情况下,可以使用以下两种模式之一:

GPIO_MODE_INPUT_ANALOG:这是一种模拟输入模式,可以读取正交编码器的模拟信号。在这种模式下,GPIO 引脚可以读取到编码器输出的模拟信号,并且可以进行 ADC 转换以获得数字值。

GPIO_MODE_INPUT_FLOATING:这是一种浮空输入模式,可以读取正交编码器的数字信号。在这种模式下,GPIO 引脚的输入电平由外部输入信号决定,当没有输入信号时,输出电平为高阻态。

yeates333 发表于 2023-10-8 17:49 | 显示全部楼层
在模拟输入模式下,I/O端口的电平信号直接进入输入数据寄存器,因此适用于读取外部信号。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

90

帖子

0

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