高中生
最后登录1970-1-1
在线时间 小时
注册时间2018-3-19
|
- 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);
-
-
- }
复制代码
上面这段函数中有一行代码是DMA_InitTStruct.DMA_MemoryBaseAddr = (u32)SendBuff;其中这个(u32)是什么?怎么用?为什么不能用*代替?
|
|