
代码在初始几天能用,但是项目要求需要使用DMA来传输IIC的数据,所以我将软件IIC的代码改成了硬件IIC代码,在使用了两小时后出现SCL持续拉低的情况,然后在断电几秒之后重新烧录软件IIC代码并加入高低平测试(如上图)发现SCL依旧不变
下面是示波器抓取的电平:
SCL:

SDA:


代码在初始几天能用,但是项目要求需要使用DMA来传输IIC的数据,所以我将软件IIC的代码改成了硬件IIC代码,在使用了两小时后出现SCL持续拉低的情况,然后在断电几秒之后重新烧录软件IIC代码并加入高低平测试(如上图)发现SCL依旧不变
下面是示波器抓取的电平:
SCL:


阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
问题分析
基于STM32H7的IIC通信出现SCL持续拉低的问题,特别是在使用DMA传输数据后出现这种情况。这种问题可能与硬件IIC通信的配置、DMA传输的设置或其他因素有关。
解决方案
核心代码
// IIC通信的配置
I2C_InitTypeDef I2C_InitStruct;
I2C_InitStruct.I2C_ClockSpeed = 100000; // 时钟频率
I2C_InitStruct.I2C_DutyCycle = I2C_DUTYCYCLE_2; // 数据位数
I2C_InitStruct.I2C_Mode = I2C_MODE_I2C; // 模式
I2C_InitStruct.I2C_OwnAddress1 = 0x00; // 自定义地址
I2C_InitStruct.I2C_DualAddressMode = I2C_DUALADDRESS_DISABLE; // 双地址模式
I2C_InitStruct.I2C_DualAddress = 0x00; // 双地址
I2C_InitStruct.I2C_OwnAddress2 = 0x00; // 自定义地址2
I2C_InitStruct.I2C_AcknowledgeEn = I2C_ACKNOWLEDGE_ENABLE; // 确认
I2C_InitStruct.I2C_ClockSpeed = 100000; // 时钟频率
I2C_InitStruct.I2C_DutyCycle = I2C_DUTYCYCLE_2; // 数据位数
I2C_InitStruct.I2C_Mode = I2C_MODE_I2C; // 模式
I2C_InitStruct.I2C_OwnAddress1 = 0x00; // 自定义地址
I2C_InitStruct.I2C_DualAddressMode = I2C_DUALADDRESS_DISABLE; // 双地址模式
I2C_InitStruct.I2C_DualAddress = 0x00; // 双地址
I2C_InitStruct.I2C_OwnAddress2 = 0x00; // 自定义地址2
I2C_InitStruct.I2C_AcknowledgeEn = I2C_ACKNOWLEDGE_ENABLE; // 确认
I2C_InitStruct.I2C_ClockSpeed = 100000; // 时钟频率
I2C_InitStruct.I2C_DutyCycle = I2C_DUTYCYCLE_2; // 数据位数
I2C_InitStruct.I2C_Mode = I2C_MODE_I2C; // 模式
I2C_InitStruct.I2C_OwnAddress1 = 0x00; // 自定义地址
I2C_InitStruct.I2C_DualAddressMode = I2C_DUALADDRESS_DISABLE; // 双地址模式
I2C_InitStruct.I2C_DualAddress = 0x00; // 双地址
I2C_InitStruct.I2C_OwnAddress2 = 0x00; // 自定义地址2
I2C_InitStruct.I2C_AcknowledgeEn = I2C_ACKNOWLEDGE_ENABLE; // 确认
// DMA传输的设置
DMA_InitTypeDef DMA_InitStruct;
DMA_InitStruct.DMA_Channel = DMA_CHANNEL_0; // 通道
DMA_InitStruct.DMA_PeripheralBaseAddr = (uint32_t)&I2C1_DR; // 传输方向
DMA_InitStruct.DMA_MemoryBaseAddr = (uint32_t)&buf; // 传输模式
DMA_InitStruct.DMA_DIR = DMA_DIR_PERIPH_TO_MEM; // 传输模式
DMA_InitStruct.DMA_BufferSize = 10; // 缓冲区大小
DMA_InitStruct.DMA_PeripheralInc = DMA_PERIPH_NOINC; // 增加模式
DMA_InitStruct.DMA_MemoryInc = DMA_MEM_NOINC; // 增加模式
DMA_InitStruct.DMA_PeripheralDataSize = DMA_PDATAALIGN_BYTE; // 数据大小
DMA_InitStruct.DMA_MemoryDataSize = DMA_MDATAALIGN_BYTE; // 数据大小
DMA_InitStruct.DMA_Mode = DMA_CIRCULAR; // 模式
DMA_InitStruct.DMA_Priority = DMA_PRIORITY_HIGH; // 优先级
DMA_InitStruct.DMA_FIFOMode = DMA_FIFOMODE_ENABLE; // FIFO模式
DMA_InitStruct.DMA_FIFOThreshold = DMA_FIFO_THRESHOLD_HALFFULL; // FIFO阈值
DMA_InitStruct.DMA_Memory0MinClk = DMA_M0MINCLOCK_DISABLE; // 内存最小时钟
DMA_InitStruct.DMA_PeripheralOverrun = DMA_PERIPH_NOOVERLAP; // 外设溢出
DMA_InitStruct.DMA_MemoryDataAlignment = DMA_MDATAALIGN_BYTE; // 内存数据对齐
DMA_InitStruct.DMA_PeripheralDataAlignment = DMA_PDATAALIGN_BYTE; // 外设数据对齐
DMA_InitStruct.DMA_MemoryMerge = DMA_MERGEDISABLE; // 内存合并
DMA_InitStruct.DMA_PeripheralMerge = DMA_MERGEDISABLE; // 外设合并
DMA_InitStruct.DMA_CircularMode = DMA_CIRCULARMODE_DISABLE; // 循环模式
DMA_InitStruct.DMA_TransferComplete = DMA_TCIF_DISABLE; // 完成标志
DMA_InitStruct.DMA_HalfTransfer = DMA_HTIF_DISABLE; // 半完成标志
DMA_InitStruct.DMA_TransferError = DMA_TEIF_DISABLE; // 错误标志
DMA_InitStruct.DMA_CalculateCRC = DMA_CCIF_DISABLE; // CRC标志
DMA_InitStruct.DMA_DisableDNMA = DMA_DNMAIF_DISABLE; // 禁用DMA
DMA_InitStruct.DMA_ClearFlag = DMA_CIF_DISABLE; // 清除标志
DMA_InitStruct.DMA_ClearPendingFlag = DMA_PIF_DISABLE; // 清除待处理标志
DMA_InitStruct.DMA_ClearITS = DMA_CITS_DISABLE; // 清除IT标志
DMA_InitStruct.DMA_ClearIT = DMA_CIT_DISABLE; // 清除IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT标志
DMA_InitStruct.DMA_EnableIT = DMA_ENIT_DISABLE; // 启用IT