打印

DMA配置初始化结构体中用到的(u32)是什么?

[复制链接]
399|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
uint8_t SendBuff[SENDBUFF_SIZE];
void USARTx_DMA_Config(void)
{
        DMA_InitTypeDef DMA_InitTStruct;
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
        
        // 设置DMA源地址:串口1的数据寄存器地址*/
        DMA_InitTStruct.DMA_PeripheralBaseAddr = USART_DR_ADDRESS;
        // 传输大小
        DMA_InitTStruct.DMA_BufferSize = SENDBUFF_SIZE;
        // 方向:从内存到外设
        DMA_InitTStruct.DMA_DIR = DMA_DIR_PeripheralDST;
        // 禁止内存到内存的传输
        DMA_InitTStruct.DMA_M2M = DMA_M2M_Disable;
        // 内存地址(要传输的变量的指针)【?】为什么用(u32)
        DMA_InitTStruct.DMA_MemoryBaseAddr = (u32)SendBuff;
        // 内存数据单位
        DMA_InitTStruct.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
        // 外设数据单位
        DMA_InitTStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
        // 内存地址自增
        DMA_InitTStruct.DMA_MemoryInc = DMA_MemoryInc_Enable;
        // 外设地址不增
        DMA_InitTStruct.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
        // DMA模式,一次或者循环模式
        DMA_InitTStruct.DMA_Mode = DMA_Mode_Normal;
        // 优先级:中(这里可随意)
        DMA_InitTStruct.DMA_Priority = DMA_Priority_Medium;
        //配置DMA通道
        DMA_Init(USART_TX_DMA_CHANNLE, &DMA_InitTStruct);
        
        //使能DMA
        DMA_Cmd(USART_TX_DMA_CHANNLE,ENABLE);
        
        
}

使用特权

评论回复

相关帖子

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

本版积分规则

437

主题

437

帖子

0

粉丝