初级会员

- 积分
- 61
- 金钱
- 61
- 注册时间
- 2016-1-16
- 在线时间
- 20 小时
|
1金钱
小白一只
写了个DMA中断函数
void DMA2_Stream7_IRQHandler(void)
{
LED0=!LED0;
MYDMA_Enable(DMA2_Stream7,SEND_BUF_SIZE);
DMA_ClearFlag(DMA2_Stream7,DMA_FLAG_TCIF7);//清除中断标志
}
MYDMA_Enable是原子哥教程里面的
void MYDMA_Enable(DMA_Stream_TypeDef *DMA_Streamx,u16 ndtr)
{
DMA_Cmd(DMA_Streamx, DISABLE);
while (DMA_GetCmdStatus(DMA_Streamx) != DISABLE){}
DMA_SetCurrDataCounter(DMA_Streamx,ndtr);
DMA_Cmd(DMA_Streamx, ENABLE);
}
中断初始化也写了,实验的时候,每次发送完成LED灯有反转,证明还是有进去中断的,可是只发送了一次BUFF_SIZE数量的内容到串口(特意把BUFF_SIZE改小了容易辨别)是否中断里面能开启传输或者是需要什么双缓冲双指针,看了一些说双缓冲也是在中断里面写另一指针地址的,不知道我这样理解对么。
|
|