打印
[STM32F2]

如何配置 EXTI 线来触发 DMA 传输

[复制链接]
574|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 梵蒂冈是神uy 于 2024-6-1 03:20 编辑


#include "gd32f3x0.h"

#define BUFFER_SIZE 64
uint8_t receive_buffer[BUFFER_SIZE];

void usart0_dma_config(void)
{
    // DMA配置代码
}

void exti0_config(void)
{
    /* enable the EXTI GPIO clock */
    rcu_periph_clock_enable(RCU_GPIOB);

    /* configure button pin as input */
    gpio_mode_set(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_0);

    /* enable and set EXTI line source */
    gpio_exti_source_select(GPIO_PORT_SOURCE_GPIOB, GPIO_PIN_SOURCE_0);

    /* configure EXTI line */
    exti_init(EXTI_0, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
    exti_interrupt_flag_clear(EXTI_0);
    exti_interrupt_enable(EXTI_0, ENABLE);

    /* enable and set EXTI0_IRQn Interrupt */
    nvic_irq_enable(EXTI0_IRQn, 2U, 0U);
}

void exti0_IRQHandler(void)
{
    /* clear EXTI line interrupt flag */
    exti_interrupt_flag_clear(EXTI_0);

    /* 设置DMA请求标志,启动DMA传输 */
    dma_flag_set(DMA0, DMA_CH2, DMA_INT_FLAG_G);
}

int main(void)
{
    /* 初始化USART、DMA、外部中断等 */
    usart0_dma_config();
    exti0_config();

    while (1) {
        /* 在这里处理其他任务 */
    }

    return 0;
}


使用特权

评论回复
沙发
呐咯密密| | 2024-6-1 20:52 | 只看该作者
这能启动DMA?

使用特权

评论回复
板凳
香水城| | 2024-6-3 14:05 | 只看该作者
这个贴估计也是机器人拼凑出来的。不用理它。内容乱来的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

680

帖子

1

粉丝