波特率1200 单独发AA,
如果只用以下
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,GPIO_PIN_3); //RDE=1
ROM_UARTCharPutNonBlocking(UART2_BASE, data_buffer);
while(UARTBusy(UART2_BASE)); //等待发送完成
结果显示 35
如果加延时1MS
SysCtlDelay(SysCtlClockGet() / (1000 * 3));
结果显示 75
如果加延时2MS
结果显示 F5
如果加延时3MS
才显示 AA
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,GPIO_PIN_3); //RDE=1
ROM_UARTCharPutNonBlocking(UART2_BASE, data_buffer);
while(UARTBusy(UART2_BASE)); //等待发送完成
SysCtlDelay(3*SysCtlClockGet() / (1000 * 3));
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,~GPIO_PIN_3); //RDE=0
但该命令在2400的时候,就会出现发完一个字节AA,后面会一直发字节E0
感觉和数据关断设置有关
如果不加SysCtlDelay(3*SysCtlClockGet() / (1000 * 3));
2400的时候,就正常
|