在线时间13 小时
UID97219
ST金币99
蝴蝶豆5
注册时间2015-2-10
该用户从未签到
中级会员
- 最后登录
- 2019-5-8
|
芯片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);
- }
复制代码
|
|