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]