
void DMA1_Ch4_7_DMAMUX1_OVR_IRQHandler(void) { / USER CODE BEGIN DMA1_Ch4_7_DMAMUX1_OVR_IRQn 0 / / USER CODE END DMA1_Ch4_7_DMAMUX1_OVR_IRQn 0 / //HAL_DMA_IRQHandler(&hdma_dac1_ch1); HAL_DMA_IRQHandler(&hdma_usart1_tx); HAL_DMA_IRQHandler(&hdma_adc1); //HAL_DMA_IRQHandler(&hdma_usart1_tx); / USER CODE BEGIN DMA1_Ch4_7_DMAMUX1_OVR_IRQn 1 / / USER CODE END DMA1_Ch4_7_DMAMUX1_OVR_IRQn 1 / } else if(uartHandle->Instance==USART1) //USART1-初始化20231211 { HAL_RCC_USART1_CLK_ENABLE(); HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = Oxy_Tx_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF4_USART1; HAL_GPIO_Init(Oxy_Tx_GPIO_Port, &GPIO_InitStruct); GPIO_InitStruct.Pin = Oxy_Rx_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF4_USART1; HAL_GPIO_Init(Oxy_Rx_GPIO_Port, &GPIO_InitStruct); hdma_usart1_tx.Instance = DMA1_Channel4; //dma没有初始化-4-6空闲 hdma_usart1_tx.Init.Request = DMA_REQUEST_USART1_TX; hdma_usart1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_usart1_tx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_usart1_tx.Init.MemInc = DMA_MINC_ENABLE; hdma_usart1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_usart1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_usart1_tx.Init.Mode = DMA_CIRCULAR; hdma_usart1_tx.Init.Priority = DMA_PRIORITY_LOW; if (HAL_DMA_Init(&hdma_usart1_tx) != HAL_OK) { Error_Handler(); } __HAL_LINKDMA(uartHandle,hdmatx,hdma_usart1_tx); HAL_NVIC_SetPriority(USART1_IRQn, 3, 0); HAL_NVIC_EnableIRQ(USART1_IRQn); } void MX_USART1_UART_Init(void) //氧浓度20231208 { huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1; huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;//20230605 //huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_RXOVERRUNDISABLE_INIT;//20230601 //huart1.AdvancedInit.OverrunDisable = UART_ADVFEATURE_OVERRUN_DISABLE;//20230601 if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK) { Error_Handler(); } } |
STM32H7+SAI+DMA双缓冲配置失败.
FW_H7 V1.12.1-HAL库DMA双缓冲配置
利用stm32f412 的SPI 的DMA 模式读取外部ADC数据如何提高效率
请教专家,STM8L052的GPIO口做输入检测,为什么不能反应管脚实际电压变化?
stm32f746g-disco开发板的串口通讯连接方式
各位大佬们多提提宝贵建议定位根本原因,跪谢。STM32L452 在未知情况下打开了读保护RDP?MCU无法运行,只有解除读保护后重新烧录固件
STM32G070 I2C主机只发送设备地址读测试是否产生stop位
STM32G030K6Tx使用ADC+DMA进行6通道ADC采集,DMA传输错位问题。
求助:I2S通过DMA搬运后通过USB上传上位机,转为.wav文件后声音嘈杂,音质很差,基本听不出人声
请问如何在下载程序时保护flash中的用户数据不被覆盖?
能具体描述一下问题吗?错乱是怎么个错乱?
官方有个例程,直接用参考着用。
STM32Cube_FW_G0_V1.5.0\Projects\STM32G081B-EVAL\Examples\UART\UART_TwoBoards_ComDMA\
兄台,请将代码粘贴到代码部分。我看了一下你的代码,怎么没有if就直接来个else if?
是不是粘贴错了?