void UART0_Init(void) { /*---------------------------------------------------------------------------------------------------------*/ /* Init UART */ /*---------------------------------------------------------------------------------------------------------*/ UART0->BAUD = UART_BAUD_MODE2 | UART_BAUD_DIV_MODE2(PLL_CLOCK, 115200); _UART_SET_DATA_FORMAT(UART0, UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_1); }
void UART0_Init(void) { /*---------------------------------------------------------------------------------------------------------*/ /* Init UART */ /*---------------------------------------------------------------------------------------------------------*/ /* Configure UART0 and set UART0 Baudrate */ UART0->BAUD = UART_BAUD_MODE2 | UART_BAUD_DIV_MODE2(__XTAL, 115200); _UART_SET_DATA_FORMAT(UART0, UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_1); }
void UART1_Init() { /*---------------------------------------------------------------------------------------------------------*/ /* Init UART */ /*---------------------------------------------------------------------------------------------------------*/ UART1->BAUD = UART_BAUD_MODE2 | UART_BAUD_DIV_MODE2(__XTAL, 115200); _UART_SET_DATA_FORMAT(UART1, UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_1); }
/*---------------------------------------------------------------------------------------------------------*/ void RS485_9bitModeSlave() { /* Set Data Format*/ /* Only need parity enable whenver parity ODD/EVEN */ _UART_SET_DATA_FORMAT(UART1, UART_WORD_LEN_8 | UART_PARITY_EVEN | UART_STOP_BIT_1); /* Set RX Trigger Level = 1 */ _UART_SET_RX_TRG_LEV(UART1,UART_FCR_RFITL_1BYTE); #if(IS_USE_RS485NMM == 1) printf("+-----------------------------------------------------------+\n"); printf("| Normal Multidrop Operation Mode |\n"); printf("+-----------------------------------------------------------+\n"); printf("| The function is used to test 9-bit slave mode. |\n"); printf("| Only Address %2x and %2x,data can receive |\n",MATCH_ADDRSS1,MATCH_ADDRSS2); printf("+-----------------------------------------------------------+\n"); /* Set RX_DIS enable before set RS485-NMM mode */ UART1->FCR |= UART_FCR_RX_DIS_Msk; /* Set RS485-NMM Mode */ UART1->ALT_CSR = UART_ALT_CSR_RS485_NMM_Msk | UART_ALT_CSR_RS485_ADD_EN_Msk ; #else printf("Auto Address Match Operation Mode\n"); printf("+-----------------------------------------------------------+\n"); printf("| The function is used to test 9-bit slave mode. |\n"); printf("| Auto Address Match Operation Mode |\n"); printf("+-----------------------------------------------------------+\n"); printf("|Only Address %2x,data can receive |\n",MATCH_ADDRSS1); printf("+-----------------------------------------------------------+\n"); /* Set RS485-AAD Mode and address match is 0xC0 */ UART1->ALT_CSR = UART_ALT_CSR_RS485_AAD_Msk | UART_ALT_CSR_RS485_ADD_EN_Msk | //ADD_EN is option. ((uint32_t)(MATCH_ADDRSS1)<< UART_ALT_CSR_ADDR_MATCH_Pos) ; #endif /* Set RS485 Function */ _UART_SEL_FUNC(UART1,UART_FUNC_SEL_RS485); /* Enable RDA\RLS\Time-out Interrupt */ _UART_ENABLE_INT(UART1, (UART_IER_RDA_IEN_Msk | UART_IER_RLS_IEN_Msk | UART_IER_RTO_IEN_Msk)); NVIC_EnableIRQ(UART1_IRQn); printf("Ready to recevice data...(Press any key to stop test)\n"); GetChar(); /* Flush FIFO */ _UART_FLUSH_FIFO(UART1,UART_FCR_TFR_Msk|UART_FCR_RFR_Msk); _UART_DISABLE_INT(UART1, (UART_IER_RDA_IEN_Msk | UART_IER_RLS_IEN_Msk | UART_IER_RTO_IEN_Msk)); /* Set UART Function */ _UART_SEL_FUNC(UART1,UART_FUNC_SEL_UART); printf("\n\nEnd test\n"); }
void UART0_Init(void) { /*---------------------------------------------------------------------------------------------------------*/ /* Init UART */ /*---------------------------------------------------------------------------------------------------------*/ /* Reset IP */ SYS->IPRSTC2 |= SYS_IPRSTC2_UART0_RST_Msk; SYS->IPRSTC2 &= ~SYS_IPRSTC2_UART0_RST_Msk; /* Configure UART0 and set UART0 Baudrate */ UART0->BAUD = UART_BAUD_MODE2 | UART_BAUD_DIV_MODE2(PLL_CLOCK, 115200); _UART_SET_DATA_FORMAT(UART0, UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_1); }
void RS485_SendDataByte(uint8_t *pu8TxBuf, uint32_t u32WriteBytes) { _UART_SET_DATA_FORMAT(UART1,UART_WORD_LEN_8 | UART_PARITY_SPACE | UART_STOP_BIT_1); UART_Write(UART1,pu8TxBuf,u32WriteBytes); }
/*---------------------------------------------------------------------------------------------------------*/ void RS485_SendAddressByte(uint8_t u8data) { _UART_SET_DATA_FORMAT(UART1,UART_WORD_LEN_8 | UART_PARITY_MARK | UART_STOP_BIT_1); _UART_SENDBYTE(UART1,u8data); }