永发信息网

STM32中DMA通道

答案:2  悬赏:30  手机版
解决时间 2021-02-01 18:39
  • 提问者网友:無理詩人
  • 2021-01-31 20:14
void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx)
{
DMA_CHx->CCR&=~(1<<0); //关闭DMA传输
DMA_CHx->CNDTR=DMA1_MEM_LEN; //DMA1,传输数据量
DMA_CHx->CCR|=1<<0; //开启DMA传输
}

这里的DMA_Channel_TypeDef*DMA_CHx是什么意思啊??
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-01-31 20:55
呵呵,你这个应该是的stm32的固件库函数的修改版吧。
DMA_Channel_TypeDef*指的是DMA_Channel_TypeDef的指针,它指向一个地址。
DMA_CHx应该是一个宏定义,它定义了这个地址。
x值代表DMA的通道号,根据芯片不同,可能有1~7不等。
如果想要明白些,用goto difinition查看宏定义即可。

欢迎追问
全部回答
  • 1楼网友:走死在岁月里
  • 2021-01-31 21:38
用和不用当然都可以发送。不用dma发送是需要单片机实时参与,由单片机一个一个地发送数据并进行监控。但是如果用dma,设置了起始地址,数据大小等参数后,就直接由专门的一个dma模块进行数据发送,发送过程中单片机无需参与。发送完后会产生中断告知单片机。由此可知用dma可以节省单片机资源,让单片可以在同一时间里干更多事。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯