芯片
STM32f103zet,用串口1和串口2;
串口1,DMA循环模式接收1字节,处理用户输入命令,
串口2,DMA普通模式接收512字节,解析GPS信息,
问题1:串口2启动DMA,HAL_UART_Receive_DMA( huart2, GPSRxBuff[0], 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[0], 512,1000);
- HAL_UART_Receive_DMA( hGPS, GPSRxBuff[0], 511);
- }