Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
STM32
设备驱动
STM32 设备驱动 脉冲编码器过零点问题
发布于 2022-09-08 11:46:47 浏览:719
订阅该版
硬件:STM32F429IGT6核心板 操作系统:RTT V4.1.5 使用设备驱动运行脉冲编码器。 运行情况:定时器10ms采集一次脉冲编码器的脉冲值并与上一次脉冲值做差,来得出速度 代码如下:【代码中的所有变量皆为int32_t 类型】 ```c /** * @brief 编码器计数,速度计算 * @param None * @retval None * @note https://blog.csdn.net/csol1607408930/article/details/112793292 M法 */ rt_int32_t walk_count; rt_int32_t walk_last_count; static void Motor_Encoder_Calculation(void) { /* 读取脉冲编码器计数值 */ rt_device_read(pulse_encoder_dev, 0, & walk_count, 1); walk.motor.get_freq = ( walk_count - walk_last_count) * 10; walk.motor.get_speed = 60 * ( walk_count - walk_last_count) * 10 / RESOLUTION; walk_last_count = walk_count; } ``` 问题点:脉冲编码器过零点问题 使用设备框架运行脉冲编码器,读取的值只有正数。那么在过零点的时候,将会变为一个较大的整数。例如32755等等。这就要去处理过零点问题。很麻烦。 过零时断点截图如下 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220908/128c03f1e7d2fc648a7df62345a7746f.png) 解决办法:将drv_pulse_encoder.c中的宏定义 `#define AUTO_RELOAD_VALUE 0x7FFF` 改为 `#define AUTO_RELOAD_VALUE 0xFFFF` 这样在过零点时,自动溢出,将变量值变成负数。这样做出来的速度就是正确的了。 应该有个设置,速度模式或者位置模式。速度模式用0XFFFF.角度模式用0X7FFF。这样就比较合适
查看更多
StackYuan
认证专家
2022-09-09
这家伙很懒,什么也没写!
对于过零问题,处理不好会引入相当大的误差,除了引入超大差值的判断并自动纠正,也可以根据自己counter支持的模式,设置watermark,程序上可以是read and clear。
1
个回答
默认排序
按发布时间排序
撰写答案
登录
注册新账号
关注者
0
被浏览
719
关于作者
用户名由3_15位
这家伙很懒,什么也没写!
提问
62
回答
229
被采纳
32
关注TA
发私信
相关问题
1
裸机工程移植 RT-Thread
2
Keil MDK 移植 RT-Thread Nano
3
移植 Nano,rt_thread_mdelay()延迟时间不对
4
裸机工程移植 RT-Thread内核
5
关于利用0x68000000作为扩展sram?
6
STM32F413 SD 卡写入速度提升方法
7
STM32 RTC 闹钟
8
http_ota 提示no memory
9
studio中怎么把PB3 和PA15引脚设置为普通IO口使用?
10
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部