| | |
| | | |
| | | } |
| | | |
| | | |
| | | void UART0_CheckReceive(void) |
| | | { |
| | | int32_t DMACnt = 0; |
| | | int32_t MaxDataLen = EUART_RX_BUF_SIZE; |
| | | cndtr=get_uart0_dma_cndtr(); |
| | | //缺少check保护 |
| | | //如果正在往发送队列中添加数据,退出 |
| | | if(m_bEUARTPushingFrms) |
| | | return; |
| | | //判断是否正在Check |
| | | if(m_bEUARTCheckingRec) |
| | | return; |
| | | m_bEUARTCheckingRec = 1; |
| | | if(cndtr== 0) |
| | | { |
| | | m_bEUARTCheckingRec = 0; |
| | | return; |
| | | } |
| | | DMACnt = EUART_RX_BUF_SIZE - cndtr; |
| | | while( m_EUART_DMA_RXPtr != DMACnt && MaxDataLen > 0) |
| | | { |
| | | Usart1ParseDataCallback(m_EUART_DMA_RXBuf[m_EUART_DMA_RXPtr]); |
| | | //waitusart_timer = tag_frequency*USART_KEEPWAKE_TIME; |
| | | m_EUART_DMA_RXPtr++; |
| | | if( m_EUART_DMA_RXPtr >= EUART_RX_BUF_SIZE ) |
| | | { |
| | | m_EUART_DMA_RXPtr = 0; |
| | | } |
| | | DMACnt = EUART_RX_BUF_SIZE - cndtr; |
| | | MaxDataLen--; |
| | | } |
| | | m_bEUARTCheckingRec = 0; |
| | | |
| | | } |
| | | |
| | | #ifndef EXUART_USE_TXDMA |
| | | //查询方式发送数据 |