TI中文支持网
TI专业的中文技术问题搜集分享网站

TM4C QEI0模块不能正确读取位置,是不是PD7解锁问题?

用的TM4C123BH6PM芯片,现在QEI0能读取速度,但是不能读取位置,QEI1完全正常,看了之前的帖子,怀疑是PD7的解锁问题,可是我的程序里是解锁了的,难道解的不对?另我用的Keil版本较低,不能选TM4C型号,所以随便选择了LM4F的型号,但是其他外设都好使,会不会和Keil有关?

程序初始化和配置代码如下:

MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI0);

MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);      

MAP_GPIOPinConfigure(GPIO_PD3_IDX0);   

MAP_GPIOPinTypeQEI(GPIO_PORTD_BASE, GPIO_PIN_3);

 //解锁PD7,这部分是软件自动生成的,不知配置的对不对。。。

 HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;   

 HWREG(GPIO_PORTD_BASE + GPIO_O_CR) = 0x80;

 MAP_GPIOPinConfigure(GPIO_PD7_PHB0);  

 MAP_GPIOPinTypeQEI(GPIO_PORTD_BASE, GPIO_PIN_7);

MAP_GPIOPinConfigure(GPIO_PD6_PHA0);    

MAP_GPIOPinTypeQEI(GPIO_PORTD_BASE, GPIO_PIN_6);

QEIConfigure(QEI0_BASE,(QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_RESET_IDX|QEI_CONFIG_QUADRATURE  | QEI_CONFIG_NO_SWAP), 1999);                                                                         /*  使用A,B通道共4个边沿计算速度,500线码盘*/    

QEIVelocityConfigure(QEI0_BASE, QEI_VELDIV_1, v_t);               /*  设置速度检测周期为 10ms=0.01秒,2.5MS   */   

 QEIVelocityEnable(QEI0_BASE);                                       /*  使能正交编码器的速度检测功能*/   

QEIEnable(QEI0_BASE);                                               /*  使能正交编码器              */           

QEIIntEnable(QEI0_BASE,QEI_INTINDEX);                                /*  检测到索引脉冲时出发中断,用于找电机绝对位置*/   

IntEnable(INT_QEI0); 

IntMasterEnable();

Wellin Zhang:

Hi Jingqi

1. PD7的配置没有问题。

2. TM4C123BH6PM对应的LM4F型号为LM4F210H5QR,你可以选择该型号,另外将C/C++选项卡下的define预编译选项中中加入PART_LM4F210H5QR

赞(0)
未经允许不得转载:TI中文支持网 » TM4C QEI0模块不能正确读取位置,是不是PD7解锁问题?
分享到: 更多 (0)