*/李国坚女士/李国坚女士(香港)(香港)有限公司 UART 初始化文件(英文 /
空配置 ModubusUART6 (空)
{
//启用 UART 使用的 GPIO 外设。
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOP);
//启用 UART6。
SysCtlPeripheralEnable (SYSCTL_Periph_UART6);
//针对 UART 模式配置 GPIO 引脚。
GPIOPinConfigure (GPIO_PP0_U6RX);
GPIOPinConfigure (GPIO_PP1_U6TX);
GPIOPinTypeUART (GPIO_PORTP_BASE、GPIO_PIN_0 | GPIO_PIN_1);
// TODO:以前的 Buad 率:115200
//初始化控制台 I/O 的 UART
UARTConfigSetExpClk (UART6_BASE、SYSTEM MCLOCK、115200、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
}
*/李国强(香港)代表:香港特区政府(香港)有限公司(香港特区 /
我已按照上述初始化函数设置 UART。 我已将波特率设置为115200。 理论上采用此波特率时、传输8位所需的时间 可以在(8/115200 =) 69usec 左右。 因此、这次传输600字节大约是42ms。 但在本例中、传输600字节需要128到200ms。 我们使用 Modbus-RS485通信、因此无论何时发送或接收、我们都必须切换方向引脚。
我们将在以下代码中测量这个介于 S-RX-1和 S-RX-2之间的时间
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_3、GPIO_PIN_3);
UART0print ("S-RX-1\r\n");
/*从主设备发出的从设备数据请求:led on */
GPIOPinWrite (GPIO_PORTK_BASE、GPIO_PIN_1、GPIO_PIN_1);
FPGAincomingData[1]= slaveCommandRxBuf[1];
// TODO:SysCtlDelay (SYSTEMCLOCK/100);
softDelay (3);//必须延迟大于主机发送数据的时间,同时延迟接收
/*已发送至 MBUS-UART */
UART6print (((const char *) FPGAincomingData);
/*发送至 Debug-UART */
UART0print ("S-TX-2 >");UART0print ((const char*) FPGAincomingData);UART0print ("\n");
UART0print ("S-TX-3 >\r\n ");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
此致、
萨加尔