void UART3_PrintBlock(uint8_t* pdata, uint8_t len) { uint8_t i = 0; for(i = 0; i < len; i++) { FIFO_S_Put(UART_TranFifo, pdata[i]); } USART_ITConfig(USART3, USART_IT_TXE, ENABLE); //发送寄存器空中断 }
void UART1_PrintStr (uint8_t* str) { #if 0 uint8_t i = 0; while(str[i] != '\0') { UART1_PrintCh(str[i++]); } #else uint8_t i = 0; OS_ERR err; CPU_TS ts; OSMutexPend((OS_MUTEX *)&PC_UART_DEVICE, (OS_TICK )0, (OS_OPT )OS_OPT_PEND_BLOCKING, (CPU_TS *)&ts, (OS_ERR *)&err); #if 0 while(str[i] != '\0') { while(FIFO_S_IsFull(PC_Tx)); FIFO_S_Put(PC_Tx, str[i]); } #else while(str[i] != '\0') { UART1_PrintCh(str[i++]); } #endif OSMutexPost((OS_MUTEX *)&PC_UART_DEVICE, (OS_OPT )OS_OPT_POST_NONE, (OS_ERR *)&err); USART_ITConfig(USART1, USART_IT_TXE, ENABLE); #endif }
void UART1_PrintBlock (uint8_t* pBuf, uint8_t size) { #if 0 uint8_t i = 0; for(i = 0; i < size; i++) { UART1_PrintCh(pBuf[i]); } #else uint8_t i = 0; OS_ERR err; CPU_TS ts; OSMutexPend((OS_MUTEX *)&PC_UART_DEVICE, (OS_TICK )0, (OS_OPT )OS_OPT_PEND_BLOCKING, (CPU_TS *)&ts, (OS_ERR *)&err); for(i = 0; i < size; i++) { #if 0 while(FIFO_S_IsFull(PC_Tx)); FIFO_S_Put(PC_Tx, pBuf[i]); #else UART1_PrintCh(pBuf[i]); #endif } OSMutexPost((OS_MUTEX *)&PC_UART_DEVICE, (OS_OPT )OS_OPT_POST_NONE, (OS_ERR *)&err); USART_ITConfig(USART1, USART_IT_TXE, ENABLE); #endif }
void UART3_PrintCh(uint8_t ch) { FIFO_S_Put(UART_TranFifo, ch); USART_ITConfig(USART3, USART_IT_TXE, ENABLE); }