|
ADC2通过DMA1_Stream0转运数据后怎样配置为MDMA_REQUEST_DMA1_Stream0_TC硬件触发将数据再次转运 已知软件触发方式MDMA_REQUEST_SW工作正常(HAL_MDMA_Start_IT(&MDMA_ADC2COPY_Handle,SrcAddress,DstAddress,BlockDataLength,1);) 硬件触发不确认是否按照以下方式 __HAL_RCC_MDMA_CLK_ENABLE(); //没有使能时钟的情况下就配置 MDMA 很容易失败 MDMA_ADC2COPY_Handle.Instance = MDMA_Channel3; /* MDMA配置 **********************************************************************/ __HAL_RCC_MDMA_CLK_ENABLE(); MDMA_ADC2COPY_Handle.Instance = MDMA_Channel3; MDMA_ADC2COPY_Handle.Init.Request = MDMA_REQUEST_DMA1_Stream0_TC; /*触发源 */ MDMA_ADC2COPY_Handle.Init.TransferTriggerMode = MDMA_BLOCK_TRANSFER; /* 块传输 */ MDMA_ADC2COPY_Handle.Init.Priority = MDMA_PRIORITY_HIGH; /* 优先级高*/ MDMA_ADC2COPY_Handle.Init.Endianness = MDMA_LITTLE_ENDIANNESS_PRESERVE; /* 小端 */ MDMA_ADC2COPY_Handle.Init.SourceInc = MDMA_SRC_INC_BYTE; /* 源地址自增,1字节 */ MDMA_ADC2COPY_Handle.Init.DestinationInc = MDMA_DEST_INC_HALFWORD; /* 目的地址自增,2字节 */ MDMA_ADC2COPY_Handle.Init.SourceDataSize = MDMA_SRC_DATASIZE_BYTE; /* 源地址数据宽度1字节 */ MDMA_ADC2COPY_Handle.Init.DestDataSize = MDMA_DEST_DATASIZE_BYTE; /* 目的地址数据宽1字节 */ MDMA_ADC2COPY_Handle.Init.DataAlignment = MDMA_DATAALIGN_PACKENABLE; /* 小端,右对齐 */ MDMA_ADC2COPY_Handle.Init.SourceBurst = MDMA_SOURCE_BURST_16BEATS; /* 源数据突发传输*/ MDMA_ADC2COPY_Handle.Init.DestBurst = MDMA_DEST_BURST_16BEATS; /* 目的数据突发传输*/ MDMA_ADC2COPY_Handle.Init.BufferTransferLength = 128; /* 每次传输128个字节 */ MDMA_ADC2COPY_Handle.Init.SourceBlockAddressOffset = 0; /* 用于block传输,地址偏移0 */ MDMA_ADC2COPY_Handle.Init.DestBlockAddressOffset = 0; /* 用于block传输,地址偏移0 */ /* 初始化MDMA */ if(HAL_MDMA_Init(&MDMA_ADC2COPY_Handle) != HAL_OK) { Error_Handler(); } /* 设置传输完成回调和中断及其优先级配置 */ HAL_MDMA_RegisterCallback(&MDMA_ADC2COPY_Handle, HAL_MDMA_XFER_CPLT_CB_ID, MDMA_CH3_TransferCompleteCallback); HAL_NVIC_SetPriority(MDMA_IRQn, 0, 0); HAL_NVIC_EnableIRQ(MDMA_IRQn); MDMA_Channel3->CSAR=&ADC_ConvertedValue[0];//通道3源地址寄存器 MDMA_Channel3->CDAR=&NEW_DATA_ARRY[0];//通道3目的地址寄存器 MDMA_Channel3->CBNDTR|=0x001F0001;//通道3块数据字节块寄存器BRC 数据块20:31=1 MDMA_Channel3->CBNDTR|=0xFFFEFFFF;//通道3块数据字节块寄存器BNDT 数据块16:0=65535 传输的字节数65535 以上配置不清楚是否正确,是否以上配置后就可以自动工作 ,请用过的老师指点一下 |
选型,实现USB转2路CAN功能,目前看到STM32F407和STM32H750都有2路CAN,都能实现功能吗?
LPTIM5的事件Lptim5_ait作为14号Trigger input输入到DMAMUX2 Request generator触发BDMA未生成中断问题
STM32H743 HSE 48MHz晶振无法实现
STM32H743 配置USBOTG 使用U盘几周后 stm32无法识别usb
STM32H7A3RGT6 ADC 8位采样速度只能达到3.5MSPS达不到数据手册上的7MSPS ?
关于硬件ECC
关于NAND FLASH加LittleFS的方案
DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)
STM32F103C8T6是否支持TIM3的PWM边沿触发AD采集
【经验分享】STM32H7 DMA+UART不定长接收实战:解决缓存溢出与数据错位问题
微信公众号
手机版