int32_t main() { STR_UART_T sParam; UNLOCKREG(); DrvSYS_Open(50000000); LOCKREG(); DrvGPIO_InitFunction(E_FUNC_UART0); // Set UART pins /* UART Setting */ sParam.u32BaudRate = 9600; sParam.u8cDataBits = DRVUART_DATABITS_8; sParam.u8cStopBits = DRVUART_STOPBITS_1; sParam.u8cParity = DRVUART_PARITY_NONE; sParam.u8cRxTriggerLevel= DRVUART_FIFO_1BYTES; /* Set UART Configuration */ if(DrvUART_Open(UART_PORT0,&sParam) != E_SUCCESS); DrvUART_EnableInt(UART_PORT0, DRVUART_RDAINT, UART_INT_HANDLE); init_LCD(); // initialize LCD panel clear_LCD(); // clear LCD panel print_Line(0, "Smpl_UART0_HC05"); // print title while(1) { } //DrvUART_Close(UART_PORT0); }
BOOL xMBPortSerialInit( UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits, eMBParity eParity ) { BOOL bInitialized = TRUE; STR_RS485_T RS485FnPara; STR_UART_T Uart0Param; ucPORT = ucPORT; //清楚为使用报警. switch (ucDataBits){ //配置数据位长度,该移植默认使用8位数据位 case 8: break; default: bInitialized = FALSE; } Uart0Param.u32BaudRate = ulBaudRate; //配置波特率 switch(eParity){ //配置字节格式 case MB_PAR_EVEN: //偶校验 Uart0Param.u8cDataBits = DRVUART_DATABITS_8; //8位数据位 Uart0Param.u8cStopBits = DRVUART_STOPBITS_1; //1位停止位 Uart0Param.u8cParity = DRVUART_PARITY_EVEN; //偶校验 break; case MB_PAR_ODD: //奇校验 Uart0Param.u8cDataBits = DRVUART_DATABITS_8; //8位数据位 Uart0Param.u8cStopBits = DRVUART_STOPBITS_1; //1位停止位 Uart0Param.u8cParity = DRVUART_PARITY_ODD; //奇校验 break; case MB_PAR_NONE: //无校验 Uart0Param.u8cDataBits = DRVUART_DATABITS_8; //8位数据位 Uart0Param.u8cStopBits = DRVUART_STOPBITS_2; //2位停止位 Uart0Param.u8cParity = DRVUART_PARITY_NONE; //无校验 break; default: //偶校验 Uart0Param.u8cDataBits = DRVUART_DATABITS_8; //8位数据位 Uart0Param.u8cStopBits = DRVUART_STOPBITS_1; //1位停止位 Uart0Param.u8cParity = DRVUART_PARITY_EVEN; //偶校验 break; } Uart0Param.u8cRxTriggerLevel= DRVUART_FIFO_46BYTES; //配置接收缓冲区长度 // Uart0Param.u8TimeOut = 0x7f; //配置TIMEOUT时间 if(bInitialized){ //初始化串口 DrvUART_Open(UART_PORT0, &Uart0Param); UART0->MCR.LEV_RTS = 0; RS485FnPara.u8cAddrEnable = 0; RS485FnPara.u8cAddrValue = 0; RS485FnPara.u8cDelayTime = 2; RS485FnPara.u8cModeSelect = MODE_RS485_AUD; //自动方向识别 RS485FnPara.u8cRxDisable = 0; DrvUART_SetFnRS485(UART_PORT0,&RS485FnPara); DrvUART_EnableInt( UART_PORT0, //使能以下中断 //DRVUART_THREINT| //发送保持寄存器空中断 //DRVUART_RLSINT | //线上接收中断,检测BIF,FEF,PEF DRVUART_TOUTINT| //接收数据超时中断 //DRVUART_RDAINT, //接收数据可用中断 0, (PFN_DRVUART_CALLBACK*)UART0Handler); } return bInitialized; }
void setupUART() { #ifdef M451 setupCommandUART(); #else STR_UART_T param; DrvGPIO_InitFunction(E_FUNC_UART1); DrvSYS_SelectIPClockSource(E_SYS_UART_CLKSRC,3); param.u32BaudRate = UART_BAUD_RATE; param.u8cDataBits = DRVUART_DATABITS_8; param.u8cStopBits = DRVUART_STOPBITS_1; param.u8cParity = DRVUART_PARITY_NONE; param.u8cRxTriggerLevel = DRVUART_FIFO_1BYTES; param.u8TimeOut = 0; DrvUART_Open(UART_PORT1, ¶m); #endif printf("Version:%d\n", VERSION_CODE); }
//------------------------------ void bacarfid(){ uint8_t hasiluart[8]; STR_UART_T sParam; UNLOCKREG(); DrvSYS_Open(50000000); LOCKREG(); /* Set UART Pin */ DrvGPIO_InitFunction(E_FUNC_UART0); /* UART Setting */ sParam.u32BaudRate = 9600; sParam.u8cDataBits = DRVUART_DATABITS_8; sParam.u8cStopBits = DRVUART_STOPBITS_1; sParam.u8cParity = DRVUART_PARITY_NONE; sParam.u8cRxTriggerLevel= DRVUART_FIFO_1BYTES; DrvUART_Open(UART_PORT0,&sParam); }
/* ********************************************************************************************************* * LOCAL FUCTION ********************************************************************************************************* */ int32_t BSP_INIT_UART0(void) { STR_UART_T param; /* SYSCLK =>12Mhz*/ DrvGPIO_InitFunction(E_FUNC_UART0_RX_TX); /* Select UART Clock Source From 12MHz */ DrvSYS_SelectIPClockSource(E_SYS_UART_CLKSRC,0); param.u32BaudRate = 115200; param.u8cDataBits = DRVUART_DATABITS_8; param.u8cStopBits = DRVUART_STOPBITS_1; param.u8cParity = DRVUART_PARITY_NONE; param.u8cRxTriggerLevel = DRVUART_FIFO_62BYTES; param.u8TimeOut = 250; if(DrvUART_Open(UART_PORT0,¶m) == 0) return TRUE; else return FALSE; }