#include "ir_nec.h"
|
#include "gpio.h"
|
#include "uart.h"
|
#include "upper_computer.h"
|
|
/*ÓÉÓÚFM33A0ûÓд®¿Ú¿ÕÏÐÖжϣ¬ËùÒÔÀûÓÃDMA¼Ä´æÆ÷Ö¸Õë²»ÒÆ¶¯À´Åж¨ÊÇ·ñ½ÓÊÕÍê³É*/
|
ErrorStatus_STM32 IR_Uart5_Rx_DMA_CH5_Check(void)
|
{
|
uint16_t timeout_cnt = 0, dma_recv_cnt;
|
uint32_t dma_mar_reg_read = DMA_CHxMAR_Read(DMA_CH5);
|
|
if (dma_mar_reg_read != (uint32)uc_recv_para_g.uc_recv_buf_union.uc_recv_buf)
|
{
|
delay_ms(2);
|
while (dma_mar_reg_read != DMA_CHxMAR_Read(DMA_CH5))
|
{
|
dma_mar_reg_read = DMA_CHxMAR_Read(DMA_CH5);
|
delay_ms(2);
|
if (timeout_cnt++ > 100)
|
break;
|
}
|
}
|
else
|
return ERROR_1;
|
|
dma_recv_cnt = dma_mar_reg_read - (uint32)uc_recv_para_g.uc_recv_buf_union.uc_recv_buf;
|
if (dma_recv_cnt)
|
{
|
uc_recv_para_g.uc_recv_length = dma_recv_cnt;
|
// ½ÓÊÕRAMµØÖ·ÖØÔØ
|
DMA_ISR_DMACHFT_Clr(DMA_CH5);
|
DMA_CHxCR_ChxEN_Setable(DMA_CH5, DISABLE); // ͨµÀʧÄÜ
|
|
DMA_CHxMAR_Write(DMA_CH5, (uint32)uc_recv_para_g.uc_recv_buf_union.uc_recv_buf);
|
|
DMA_CHxCR_ChxEN_Setable(DMA_CH5, ENABLE); // ͨµÀʹÄÜ
|
uc_recv_para_g.uc_recv_flag = SET; // ½ÓÊÕÍê³É
|
return SUCCESS_0;
|
// DMA_GCR_DMAEN_Setable(DISABLE);//DMA×ÜʹÄÜ
|
}
|
return ERROR_1;
|
}
|