Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread
M2354
【NuMaker-M2354试用】QEI模块测评
发布于 2021-12-25 21:54:14 浏览:950
订阅该版
时间:2021年12月25日 作者:lianghai **1.测试环境** MDK V5.26.2.0 Nu-Link_Keil_Driver 3.07.7246r ENV V1.2.0 Python V2.7.13 rt-thread-v4.0.4 **2.测试任务** 本次测试任务为新唐 NuMaker-M2354正交编码器QEI模块 **3.资源介绍** 翻阅新唐M2354数据手册 ![image.png](https://oss-club.rt-thread.org/uploads/20211225/d43909bdea14aedd4817591744c0942b.png.webp) 查看新唐开发板原理图及数据手册,PD10、PD11、PD12空闲,配置为QEI0_B、QEI0_A、QEI0_INDEX ![image.png](https://oss-club.rt-thread.org/uploads/20211225/94104da414b23c85dd1023d6f2641e34.png) ![image.png](https://oss-club.rt-thread.org/uploads/20211225/67f03ac5b0536acb1da9e518e61ac482.png.webp) **4.代码** ENV工具开启QEI0 ![image.png](https://oss-club.rt-thread.org/uploads/20211225/80a8a22a7375e8d8d5f9bdae153f618e.png) nu_qei.c ``` void QEI_Open(QEI_T* qei, uint32_t u32Mode, uint32_t u32Value) { /* Set QEI function configuration */ /* Set QEI counting mode */ /* Enable IDX, QEA and QEB input to QEI controller */ qei->CTL = (qei->CTL & (~QEI_CTL_MODE_Msk)) | ((u32Mode) | QEI_CTL_CHAEN_Msk | QEI_CTL_CHBEN_Msk | QEI_CTL_IDXEN_Msk); /* Set QEI maximum count value in in compare-counting mode */ qei->CNTMAX = u32Value; } void QEI_Start(QEI_T* qei) { /* Enable QEI controller function */ qei->CTL |= QEI_CTL_QEIEN_Msk; } ``` main.c ``` #include "nu_qei.h" ``` ``` int main(int argc, char **argv) { #if defined(RT_USING_PIN) int counter = 100; /* set LEDR pin mode to output */ rt_pin_mode(LEDR, PIN_MODE_OUTPUT); /*PD10 PD11 PD12 配置为QEI0*/ SYS->GPD_MFPH &= ~(SYS_GPD_MFPH_PD10MFP_Msk | SYS_GPD_MFPH_PD11MFP_Msk | SYS_GPD_MFPH_PD12MFP_Msk); SYS->GPD_MFPH |= (SYS_GPD_MFPH_PD10MFP_QEI0_B | SYS_GPD_MFPH_PD11MFP_QEI0_A | SYS_GPD_MFPH_PD12MFP_QEI0_INDEX); /*打开QEI0*/ QEI_Open(QEI0,QEI_CTL_X4_FREE_COUNTING_MODE,10000); QEI_Start(QEI0); while (counter--) { rt_pin_write(LEDR, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LEDR, PIN_LOW); rt_thread_mdelay(500); } ``` **5.结果** 由于手边没有电机等可用于QEI测量的设备,只能手动模拟给PD10、PD11脉冲信号,通过仿真看了QEI_CNT寄存器,确实能够实现计数 ![image.png](https://oss-club.rt-thread.org/uploads/20211225/b271d8a0552769c0db295f2c5e405f50.png.webp) **6.心得** 新唐的技术手册讲得很清楚,寄存器的位也有清晰的介绍,RT-Thread调用驱动也比较简单,我们只需要根据实际需要选择编码器计数模式,是否开启中断等,有问题对照技术手册查看寄存器基本都能解决。遗憾的是没有能够找到设备去验证,实际应用的时候可能还是会出现问题,有机会找一个电机接上,应该会有不错的体验
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Bin角的最后一根
这家伙很懒,什么也没写!
文章
7
回答
0
被采纳
0
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
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组件
热门标签
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
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
4
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部