中级会员
 
- 积分
- 239
- 金钱
- 239
- 注册时间
- 2019-11-14
- 在线时间
- 59 小时
|
1金钱
阿波罗H7中传输完成后关闭了串口DMA,探索者F4中先下使能了DMA相应通道,又设置了传输量,然后使能DMA,这两个有什么区别?
H7中是这样操作的。
while(1)
{
if(__HAL_DMA_GET_FLAG(&UART1TxDMA_Handler,DMA_FLAG_TCIF3_7))//μè′yDMA2_Steam7′«êäíê3é
{
__HAL_DMA_CLEAR_FLAG(&UART1TxDMA_Handler,DMA_FLAG_TCIF3_7);//Çå3yDMA2_Steam7′«êäíê3é±êÖ¾
HAL_UART_DMAStop(&UART1_Handler); //′«êäíê3éòÔoó1رÕ′®¿úDMA
break;
}
pro=__HAL_DMA_GET_COUNTER(&UART1TxDMA_Handler);//μÃμ½μ±Ç°»1ê£óà¶àéù¸öêy¾Y
pro=1-pro/SEND_BUF_SIZE; //μÃμ½°ù·Ö±è
pro*=100; //à©′ó100±¶
LCD_ShowNum(30,170,pro,3,16);
}
F4中调用这个函数。
void MYDMA_Enable(DMA_Stream_TypeDef *DMA_Streamx,u16 ndtr)
{
DMA_Cmd(DMA_Streamx, DISABLE); //1رÕDMA′«êä
while (DMA_GetCmdStatus(DMA_Streamx) != DISABLE){} //è·±£DMA¿éòÔ±»éèÖÃ
DMA_SetCurrDataCounter(DMA_Streamx,ndtr); //êy¾Y′«êäá¿
DMA_Cmd(DMA_Streamx, ENABLE); //¿aÆôDMA′«êä
}
|
|