2019-07-21 03:25发布
edmund1234 发表于 2019-4-5 11:47 不需要再初始化, 先禁能, 改地址, 改数据长度, 最后使能就可以再次使其工作了
问题很大 发表于 2019-4-5 13:19 我是把DMA的初始化用一个函数封装的,这种情况怎么该地址和数据长度呢。可以禁能后改变数组的值然后使能 ...
edmund1234 发表于 2019-4-5 16:31 可以 但如果你不是循环模, 数据长度要重新设置的
最多设置5个标签!
我是把DMA的初始化用一个函数封装的,这种情况怎么该地址和数据长度呢。可以禁能后改变数组的值然后使能,这样操作最后DMA的那个数组是改变后的数组吗
DMA1_Channel1->CCR &= ~(u32)DMA_CCR_EN;
DMA1_Channel1->CMAR = (u32)0; // 内存地址
DMA1_Channel1->CNDTR = 0x100; // 数据长度
DMA1_Channel1->CPAR = (u32)&USART1->DR; // 如没需要改变外设地址可删去这条
DMA1->IFCR = 0x0F<<0;
DMA1_Channel1->CCR |= DMA_CCR_EN;
是否把这几行封成函数你自己看着办吧
但如果你不是循环模, 数据长度要重新设置的
emmm,我是循环的。但也还需要改一下,可能要多禁能几个地方。很感谢您,
一周热门 更多>