stm32cubef1xx 串口接收完成不了,进不了回调
芯片stm32f103zet,用串口1和串口2;串口1,DMA循环模式接收1字节,处理用户输入命令,
串口2,DMA普通模式接收512字节,解析GPS信息,
问题1:串口2启动DMA,HAL_UART_Receive_DMA(&huart2, &GPSRxBuff, 512); 只可以完成一次,下次启动不能完成。
附件为工程
问题说明见链接,解决办法
在启动DMA时加入清除错误标志的语句
void GPS_UART_Start(void)
{
/* Start the receiver */
__HAL_UART_CLEAR_OREFLAG(&hGPS);
if(hGPS.State == HAL_UART_STATE_READY || hGPS.State == HAL_UART_STATE_BUSY_TX)
// HAL_UART_Receive(&hGPS, &GPSRxBuff, 512,1000);
HAL_UART_Receive_DMA(&hGPS, &GPSRxBuff, 511);
}
内存增量设置好了么 netlhx 发表于 2015-3-30 11:57
内存增量设置好了么
hdma_usart2_rx.Instance = DMA1_Channel6;
hdma_usart2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_usart2_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart2_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart2_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart2_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart2_rx.Init.Mode = DMA_NORMAL;
hdma_usart2_rx.Init.Priority = DMA_PRIORITY_LOW;
HAL_DMA_Init(&hdma_usart2_rx); 谢谢楼主~ 沐紫 发表于 2015-3-30 13:19
谢谢楼主~
Cube确实很好用,我是初次用STM32,对开发帮助很大,但是也有些问题,希望你们能收集这些问题,让我们少走弯路。
这是前面发的一个帖子,关于Can的一个bughttps://www.stmcu.org.cn/module/forum/thread-600734-1-1.html 谢谢分享 学习学习 谢谢分享 谢谢楼主分享
页:
[1]