gpt4 book ai didi

interrupt - STM32f0 是否可以在 DMA 完成一半时获得中断

转载 作者:行者123 更新时间:2023-12-02 22:45:16 25 4
gpt4 key购买 nike

我有一个想要更新的循环 DMA。是否可以在完成一半时中断(以便我可以更新前半部分)?

最佳答案

是的,只需在适当的 channel 配置寄存器中设置 HTIE 位即可,例如

DMA1_Channel2->CCR |= DMA_CCR_HTIE;

对于 channel 2,在开始传输之前。不要忘记设置优先级,并启用中断。

在中断处理程序中,检查它是否确实是半传输中断,清除标志,然后执行任何必要的处理。

void DMA1_Channel2_3_IRQHandler(void) {
if(DMA1->ISR & DMA_ISR_HTIF2) {
DMA1->IFCR = DMA_IFCR_CHTIF2;
memcpy(here, there, length/2);
}
}

关于interrupt - STM32f0 是否可以在 DMA 完成一半时获得中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41767043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com