This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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);
}

}