星空之谜 发表于 2019-7-19 15:53:00

DMA发送至串口出现乱码问题


**mac.c**
void DMAx_Init(DMA_Channel_TypeDef* DMA1_Channelx,u32 par,u32 mar,u32 dir,u16 buff_size)
{
        DMA_InitTypeDef DMA_InitStructure;
       
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);
       
        DMA_InitStructure.DMA_PeripheralBaseAddr = par;
        DMA_InitStructure.DMA_MemoryBaseAddr = mar;
        DMA_InitStructure.DMA_DIR = dir;
        DMA_InitStructure.DMA_BufferSize = buff_size;
        DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
        DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryInc_Enable;
        DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
        DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
        DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
        DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
        DMA_Init(DMA1_Channelx,&DMA_InitStructure);
       
}
----------------------------------------------------------------------------------------------------------------------------
**main.c**
DMAx_Init(DMA1_Channel4,(u32)&USART1->DR,(u32)data,DMA_DIR_PeripheralDST,data_size);

----------------------------------------------------------------------------------------------------------------------------
我在mac.c中把那个传输方向用变量u32 dir代替,想在main.c里面自己传进去,然后就出现乱码了,是因为变量类型错误吗?


页: [1]
查看完整版本: DMA发送至串口出现乱码问题