想通过这块板子和传感器之间实现通信,给传感器发送一帧信息九个字节,传感器给我返回数值。选用UART2的PD6与PD7端口做输入输出,但是实践中并没有监测到数据的传入。把两端口直接相连想看一下自我收发是否可行,程序执行的结果和断开端口时是一样的,不知道哪里出了问题。接受数据和发送数据的代码在用PA0,PA1和PC做通讯时就完全没有问题请问是我的端口配置有问题吗?另外我没有使用中断,而是用一个循环来持续检测接受FIFO里是否有字符。配置代码贴在下面:
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN
| SYSCTL_XTAL_16MHZ);
FPUEnable();
FPULazyStackingEnable();
IntMasterEnable();
char UART_Send_Matrix[9] = {'\xFF','\x01','\x86','\x00','\x00','\x00','\x00','\x00','\x79'}; //构建发射数组以获取信息
char UART_Receive_Matrix[9];
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART2);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_6);
GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_7);
GPIOPinConfigure(GPIO_PD6_U2RX);
GPIOPinConfigure(GPIO_PD7_U2TX);
GPIOPinTypeUART(GPIO_PORTD_BASE,GPIO_PIN_6|GPIO_PIN_7);
UARTConfigSetExpClk(UART2_BASE,SysCtlClockGet(),9600,(UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE));
UARTFIFOEnable(UART2_BASE);
UARTEnable(UART2_BASE);
xyz549040622:
你意思是,用PD6与PD7使能UART2的时候,发送8位数据也是失败的,对吧?
user5271729:
回复 xyz549040622:
就是这个意思,您看我初始化时候的函数写的有问题吗
xyz549040622:
回复 user5271729:
我用我的板子试一试告诉你结果。