各位大师你们好,使用STM32CubeMX新建STM32F042F6 串口空休中断,DMA发送与接收,停机模式下,看门狗唤醒后,串口有时接收不到数据或不发送数据;请师指点,谢谢! void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 9600; 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.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } } recv_end_flag = HAL_UART_Transmit_DMA(&huart1,&Eppprom.EditReg.regByte.ID ,Eppprom.EditReg.regByte.len+1); recv_flag = HAL_UART_Receive_DMA(&huart1,&rx_buffer[0],DEF_BUFFER_RX_SIZE); |
【其实不仅仅是串口,其他在进入停止模式之前的外设在退出停止模式之后都会工作不正常,重新配置系统时钟即可】