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

TM4C1230H6PM: 为啥读取不了脉冲

Part Number:TM4C1230H6PM

#include "SYSTEM/sys/sys.h"

/*****************************************************************************
*初始化配置使用 UART0 外设
*-UART0RX – PA0
*-UART0TX – PA1
*****************************************************************************/
void Init_Console_Uart0(void)
{

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
UARTClockSourceSet(UART0_BASE, UART_CLOCK_PIOSC); //内部16M时钟
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
UARTStdioConfig(0, 115200, 16000000);
}

u32 dir;
u32 pulse;
int main(void)
{

//配置外部时钟为20M
SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_OSC|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ);
Init_Console_Uart0();
SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI0) ; //使能正交编码器0
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); //使能引脚
GPIOPinTypeQEI(GPIO_PORTD_BASE,GPIO_PIN_6 );
GPIOPinTypeQEI(GPIO_PORTD_BASE,GPIO_PIN_7 );
QEIConfigure(QEI0_BASE, (QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET|QEI_CONFIG_QUADRATURE | QEI_CONFIG_NO_SWAP), 3999);
QEIEnable(QEI0_BASE);

QEIPositionSet(QEI0_BASE,0x7fff);
while(1)
{
pulse=QEIPositionGet(QEI0_BASE)-0x7fff;
dir=QEIDirectionGet(QEI0_BASE);

UARTprintf("%d %d %d\r\n",pulse,dir,QEIPositionGet(QEI0_BASE));
QEIPositionSet(QEI0_BASE,0x7fff);

delay_ms(50);
}

}

Susan Yang:

您是否有参考过下面的指南?

https://www.ti.com/lit/ug/spmu298e/spmu298e.pdf 

目前您想实现的主要功能是什么?获取编码器当前的位置和方向,而后再设置编码器位置?

调试您的代码时,是可以正常获取编码器当前的位置和方向吗?能否截图说明一下?

赞(0)
未经允许不得转载:TI中文支持网 » TM4C1230H6PM: 为啥读取不了脉冲
分享到: 更多 (0)