历史上的今天
今天是:2025年07月19日(星期六)
2018年07月19日 | stm32f405 HAL库串口接收错误
2018-07-19 来源:eefocus
错误分析
用的HAL库有丢包问题,
定义void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{
if(huart == &huart1)
{
log_u("********************* huart1 err ********************************* \r\n");
switch(huart->ErrorCode)
{
case HAL_UART_ERROR_NONE:
log_u("HAL_UART_ERROR_NONE\r\n");
break;
case HAL_UART_ERROR_PE:
log_u("HAL_UART_ERROR_PE\r\n");
break;
case HAL_UART_ERROR_NE:
log_u("HAL_UART_ERROR_NE\r\n");
break;
case HAL_UART_ERROR_FE:
log_u("HAL_UART_ERROR_FE\r\n");
break;
case HAL_UART_ERROR_ORE:
log_u("HAL_UART_ERROR_ORE\r\n");
break;
case HAL_UART_ERROR_DMA:
log_u("HAL_UART_ERROR_DMA\r\n");
break;
default:
log_u("other\r\n");
break;
}
huart->RxState = HAL_UART_STATE_READY;
HAL_UART_Receive_IT( &huart1 , RxdBuff1, MAX_BUFFER);
for(i=0; i
RxdBuff1[i] = 0;
}
}
}
错误日志为
[14:15:04]********************* huart1 err *********************************
[14:15:04]HAL_UART_ERROR_NE
[14:15:04]********************* huart1 err *********************************
[14:15:04]other
[14:15:04]********************* huart1 err *********************************
[14:15:04]HAL_UART_ERROR_ORE
[14:15:04]********************* huart1 err *********************************
[14:15:04]HAL_UART_ERROR_ORE
报HAL_UART_ERROR_NE错误
查看stm32数据手册
位 2 NF:检测到噪声标志 (Noise detected flag)
当在接收的帧上检测到噪声时,该位由硬件置 1。该位由软件序列清零(读入 USART_SR 寄
存器,然后读入 USART_DR 寄存器)。
0:未检测到噪声
1:检测到噪声
注意: 如果 EIE 位置 1,则在进行多缓冲区通信时,该位不会生成中断,因为该位出现的时间与
本身生成中断的 RXNE 位因 NF 标志而生成的时间相同。
注意: 当线路无噪声时,可以通过将 ONEBIT 位编程为 1 提高 USART 对偏差的容差来禁止
NF 标志(请参见第 695 页的第 26.3.5 节: USART 接收器对时钟偏差的容差)。
将ONEBIT设置为1之后,错误率减少但是仍然存在。
史海拾趣
|
#include #include #include #include #include \"Header.h\" extern char msg[60]; extern char worker[21]; extern char address[21]; //====================================================== //主 ...… 查看全部问答> |
|
项目要求用NI公司的LabWindows/CVI开发一个应用软件,在ARM9平台上运行,ARM开发版是SBC-2410X,操作系统为WinCE.想问一下用CVI开发出来的软件能不能在该平台上运行.我知道ARM9有很多家公司生产,CVI开发出来的软件在所有ARM9上都能 ...… 查看全部问答> |
|
模电书上说在负反馈放大电路中,输入信号为零时,因为某种电扰动(如合闸通电),其中含有频率为f0的信号,使得AF的附加相移达到180°或-180°,@负反馈变成了正反馈,如果|AF|>1,则产生了自激振荡。我不明白的是,如果@处条件不成立,也就是不存 ...… 查看全部问答> |
|
把小弟这两天DIY的过程分享一下,顺便晒一晒第二块板子O(∩_∩)O~ 前两天做了个小板子,算是练了练手,承蒙大家夸奖 正好要开始做第二块板子,看到有朋友问了,就把过程也写一下吧,谈不上经验,大家姑且看看;P 首先是打印: 我用的是硫酸纸,按理说阻焊应该是打在菲林上的,但是出去转了一圈没有愿意 ...… 查看全部问答> |
|
[S3C6410学习心得之一]ok6410开发板基于Ubuntu9.10开发环境搭建-串口 系统:Ubuntu9.10开发板:飞凌OK6410 最近购入一块新的开发板,芯片是基于三星的S3C6410,ARM11,使用之后发现,速度果然很不错,跟ARM9的S3C2440不可同日而语。飞凌的开发板质量很不错,跟友善之臂相比,谁比较好一目了 ...… 查看全部问答> |




