最近正在学习luminary,用的是周立功的easyArm8962的板子,在qei的实验例程中有这么两句话:SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI);
GPIODirModeSet(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_6, GPIO_DIR_MODE_HW);
GPIODirModeSet(GPIO_PORTD_BASE, GPIO_PIN_7, GPIO_DIR_MODE_HW);//例程中的这句话是什么意思?
前两句我理解,意思是使能正交编码,用的是pc4和pc7,第三局的用途是什么?
附完整代码:int main(void){ unsigned int i;
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
/* 使能PC口外设 */ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
/* 使能PD口外设
*/ SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI0);
/* 使能正交编码器外设
*/ GPIODirModeSet(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_6, /* 选择PC4,PC6硬件功能 */ GPIO_DIR_MODE_HW);
GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_4, /* 设置PC4强度和类型 */ GPIO_STRENGTH_4MA, /* 4mA的输出驱动强度 */ GPIO_PIN_TYPE_STD); /* 设置为推挽管脚 */ GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_6, /* 设置PC6强度和类型 */ GPIO_STRENGTH_4MA, /* 4mA的输出驱动强度 */ GPIO_PIN_TYPE_STD); /* 设置为推挽管脚 */
GPIODirModeSet(GPIO_PORTD_BASE,GPIO_PIN_7,GPIO_DIR_MODE_HW); /* 选择PD7硬件功能
*/ QEIConfigure(QEI0_BASE,(QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET | QEI_CONFIG_QUADRATURE | QEI_CONFIG_NO_SWAP), 0); /* 使用A,B通道共4个边沿计算速度*/
QEIVelocityConfigure(QEI0_BASE, QEI_VELDIV_1, 60000); /* 设置速度检测周期为 0.01秒
*/
QEIEnable(QEI0_BASE);
/* 使能正交编码器
*/ QEIVelocityEnable(QEI0_BASE);
/* 使能正交编码器的速度检测功能*/
while(1){
i = QEIVelocityGet(QEI0_BASE);
/* 读出上一个周期的速度计数值 */
i = (i*100*60)/(4*512);
/* 转化为 转/分钟
*/
}}
此帖出自
小平头技术问答
一周热门 更多>