[mw_shl_code=c,true]void DMA_Mode_Config()
{
DMA_InitTypeDef DMA_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
// DMA channel5 配置
DMA_DeInit(DMA1_Channel5);
DMA_InitStructure.DMA_PeripheralBaseAddr = USART1_DR_ADDRESS; // USART1的DR寄存器地址
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&zigbeeReadValue; // 内存地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; // 外设为数据源
DMA_InitStructure.DMA_BufferSize = 1;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 外设地址固定
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; // 内存地址固定
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; // 循环传输
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel5, &DMA_InitStructure);
// 使能DMA channel5
DMA_Cmd(DMA1_Channel5, ENABLE);
// 使能USART1,DMA
USART_DMACmd(USART1,USART_DMAReq_Rx, ENABLE);
}[/mw_shl_code]
所有的我的设置我都看了几遍,通道5的选择也没错啊,
但是请问原子哥,为什么我向串口发数据时,zigbeeReadValue的值没有变啊,麻烦您看一下USART1_DR_ADDRESS
[mw_shl_code=c,true]USART1_DR_ADDRESS 的值我查过数据手册是(0x40013800+0x04)没错啊,[/mw_shl_code]
|