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

[复制链接]
 楼主| 梵蒂冈是神uy 发表于 2024-5-31 23:52 | 显示全部楼层 |阅读模式
本帖最后由 梵蒂冈是神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 | 显示全部楼层
这个贴估计也是机器人拼凑出来的。不用理它。内容乱来的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

734

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

52

主题

734

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部