| | |
| | | volatile int8_t m_EUART_TxFrm_FreeFrmLen = 0; //æ°æ®åé帧éåå©ä½å¸§æ° |
| | | //DMAæ°æ®æ¥æ¶ç¼å |
| | | uint8_t m_EUART_DMA_RXBuf[EUART_RX_BUF_SIZE]; //DMAæ°æ®æ¥æ¶ç¼å |
| | | volatile int32_t m_EUART_DMA_RXPtr = 0; //å½åæ°æ®å°å |
| | | volatile int32_t m_EUART_DMA_RXPtr = 0,m_EUART2_DMA_RXPtr = 0; //å½åæ°æ®å°å |
| | | //æ å¿åé |
| | | volatile uint8_t m_bEUARTPushingFrms = 0; //æ£å¨å¾åééååæ°æ® |
| | | volatile uint8_t m_bEUARTCheckingSend = 0; //æ£å¨ç¡®è®¤æ°æ®åé |
| | |
| | | |
| | | //åéä¸ä¸ªåèæ°æ® |
| | | EXT_UART->DR = m_EUART_TxFrames[m_EUART_TxFrm_Tail].buf[s_count]; |
| | | EXT_UART2->DR = m_EUART_TxFrames[m_EUART_TxFrm_Tail].buf[s_count]; |
| | | s_count++; |
| | | s_count++; |
| | | if(s_count >= m_EUART_TxFrames[m_EUART_TxFrm_Tail].len) //ä¸å¸§æ°æ®åé宿¯ |
| | | { |
| | | s_count = 0; |
| | |
| | | return; |
| | | } |
| | | DMACnt = EUART_RX_BUF_SIZE - (UART2_RX_DMA_CH->CNDTR); |
| | | while( m_EUART_DMA_RXPtr != DMACnt && MaxDataLen > 0) |
| | | while( m_EUART2_DMA_RXPtr != DMACnt && MaxDataLen > 0) |
| | | { |
| | | Usart1ParseDataCallback(m_EUART_DMA_RXBuf[m_EUART_DMA_RXPtr]); |
| | | Usart1ParseDataCallback(m_EUART_DMA_RXBuf[m_EUART2_DMA_RXPtr]); |
| | | delay_us(10); |
| | | m_EUART_DMA_RXPtr++; |
| | | if( m_EUART_DMA_RXPtr >= EUART_RX_BUF_SIZE ) |
| | | m_EUART2_DMA_RXPtr++; |
| | | if( m_EUART2_DMA_RXPtr >= EUART_RX_BUF_SIZE ) |
| | | { |
| | | m_EUART_DMA_RXPtr = 0; |
| | | m_EUART2_DMA_RXPtr = 0; |
| | | } |
| | | DMACnt = EUART_RX_BUF_SIZE - (UART2_RX_DMA_CH->CNDTR); |
| | | MaxDataLen--; |