历史上的今天
返回首页

历史上的今天

今天是: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之后,错误率减少但是仍然存在。



推荐阅读

史海拾趣

Hirel Systems Ltd公司的发展小趣事

对于四通道红外遥控器接收器电路,网友可能提出的问题涉及多个方面,以下是一些可能的问题及回答:

一、技术原理类问题

  1. 问题:四通道红外遥控器接收器电路是如何工作的?
    回答:四通道红外遥控器接收器电路主要通过光电二极管接收遥控器发射的红外信号,经过放大、解码等处理,最终识别出不同的按键指令,并控制相应的设备执行操作。具体来说,当遥控器发射出特定频率的红外光信号时,光电二极管将光信号转换为电信号,经过放大电路放大后,送入解码器进行解码,解码器根据解码结果输出相应的控制信号,控制设备执行相应的操作。

  2. 问题:接收器电路中的关键元件有哪些?
    回答:接收器电路中的关键元件包括光电二极管(用于接收红外光信号)、放大器(用于放大微弱的电信号)、解码器(用于解码信号并输出控制信号)以及可能的滤波电路(用于滤除噪声干扰)等。这些元件共同协作,实现红外信号的接收和处理。

二、故障排查与维修类问题

  1. 问题:接收器无法接收到信号,可能的原因有哪些?
    回答:接收器无法接收到信号的可能原因包括:

    • 光电二极管损坏或老化,导致无法有效接收红外光信号。
    • 接收器电路中的连接线松动或接触不良,导致信号传输中断。
    • 放大器或解码器故障,无法对接收到的信号进行正常放大或解码。
    • 接收器受到外界干扰(如光线、电磁干扰等),影响信号的接收和处理。

    针对以上问题,可以逐一检查光电二极管、连接线、放大器、解码器等元件的状态,并采取相应的维修或更换措施。同时,注意避免将接收器放置在易受干扰的环境中。

  2. 问题:如何排查和解决接收器响应延迟或误动作的问题?
    回答:排查和解决接收器响应延迟或误动作的问题可以从以下几个方面入手:

    • 检查遥控器发射的红外信号是否正常,包括信号的频率、强度等是否符合接收器的要求。
    • 检查接收器电路中的滤波电路是否设置得当,以避免噪声干扰导致误动作。
    • 检查解码器的解码逻辑是否正确,以确保能够准确识别出遥控器发射的指令。
    • 如果以上均正常,可以考虑检查接收器的电源系统是否稳定,以及是否有其他电路元件故障导致的影响。

    针对具体问题,可以采取相应的调整或维修措施来解决。

三、应用与拓展类问题

  1. 问题:四通道红外遥控器接收器电路可以应用于哪些场景?
    回答:四通道红外遥控器接收器电路可以广泛应用于各种需要遥控控制的设备中,如智能家居系统(如电视、空调、灯光等的遥控控制)、工业自动化控制(如电机、阀门等的远程控制)、安防监控系统(如摄像头、报警器的遥控操作)等。通过扩展通道数量和增加控制逻辑,还可以实现更复杂的控制功能。

  2. 问题:如何对四通道红外遥控器接收器电路进行升级或改造?
    回答:对四通道红外遥控器接收器电路进行升级或改造时,可以考虑以下几个方面:

    • 升级光电二极管或放大器等关键元件的性能,以提高接收灵敏度和信号处理能力。
    • 增加滤波电路或改进解码算法,以减少噪声干扰和提高解码准确性。
    • 扩展通道数量或增加控制逻辑,以实现更复杂的控制功能。
    • 引入无线通信模块(如Wi-Fi、蓝牙等),将红外遥控与无线控制相结合,提高控制的灵活性和便捷性。

    在进行升级或改造时,需要根据具体的应用需求和技术条件进行选择和设计。

GTE Microcircuits公司的发展小趣事
复合放大器因其高性能特点,在通信、音频、医疗、测试测量等多个领域有广泛应用。例如,在通信系统中用于信号放大和处理;在音频设备中用于提高音质和音量;在医疗设备中用于生物电信号的放大等。
DIPTRONICS MANUFACTURING INC公司的发展小趣事

圜达实业于1985年在台湾新北市创立,创始人凭借对电子开关行业的深刻理解和前瞻视野,决定专注于研发制造各类程序开关、触动开关等产品。公司初创时期面临资金短缺、市场竞争激烈等挑战,但创始人凭借坚定的信念和不懈的努力,逐步在市场上站稳脚跟。

Capital Advanced Technologies公司的发展小趣事

CAT深知技术创新是企业发展的核心动力。因此,公司不断投入研发资源,推动技术创新与突破。经过多年的努力,CAT成功开发出了一系列具有自主知识产权的电子产品和技术,如高性能的电路板、精密的连接器以及先进的测试设备等。这些产品的推出,不仅提高了CAT的市场竞争力,也为整个电子行业的发展注入了新的活力。

Chen Yang Technologies GmbH & Co KG公司的发展小趣事

在快速发展的过程中,Chen Yang Technologies始终重视内部管理和人才培养。公司推行了一系列创新的管理理念和措施,如扁平化管理、项目制运作等,这些措施有效提高了工作效率和团队协作能力。同时,公司还注重人才培养和引进,通过设立激励机制、提供培训和发展机会等方式,吸引和留住了一批优秀的技术人才和管理人才。

CUI Devices公司的发展小趣事

作为CUI Devices的重要组成部分,其电机品牌在近年来取得了显著的进步。公司的产品线涵盖了电位器、旋转编码器、步进电机、步进伺服电机和伺服电机等多个领域。通过不断的技术创新和市场拓展,CUI Devices的电机产品已经在全球范围内赢得了广泛的声誉和市场份额。

问答坊 | AI 解惑

学习C语言,进阶高手必备

你必须知道的495个问题-----高手必备 学习C语言,进阶高手必备 需要的就来下载吧,这是我搜集的,自认为还不错!!!…

查看全部问答>

将DBF里的BOXNO字段内容显示到屏幕【求助】

#include #include         #include #include #include \"Header.h\" extern char msg[60]; extern char worker[21]; extern char address[21]; //====================================================== //主 ...…

查看全部问答>

驱动,串口设备绑定

在没有设备名称情况下,用PDEVICE_OBJECT IoAttachDeviceStack(IN PDEVICE_OBJECT SourceDevice,                                 & ...…

查看全部问答>

LabWindows/CVI开发的软件能在ARM9上运行吗

项目要求用NI公司的LabWindows/CVI开发一个应用软件,在ARM9平台上运行,ARM开发版是SBC-2410X,操作系统为WinCE.想问一下用CVI开发出来的软件能不能在该平台上运行.我知道ARM9有很多家公司生产,CVI开发出来的软件在所有ARM9上都能 ...…

查看全部问答>

负反馈不能产生自激振荡?

模电书上说在负反馈放大电路中,输入信号为零时,因为某种电扰动(如合闸通电),其中含有频率为f0的信号,使得AF的附加相移达到180°或-180°,@负反馈变成了正反馈,如果|AF|>1,则产生了自激振荡。我不明白的是,如果@处条件不成立,也就是不存 ...…

查看全部问答>

C8051F tools

新华龙官网找到的一些工具http://www.xhl.com.cn/   …

查看全部问答>

把小弟这两天DIY的过程分享一下,顺便晒一晒第二块板子O(∩_∩)O~

前两天做了个小板子,算是练了练手,承蒙大家夸奖 正好要开始做第二块板子,看到有朋友问了,就把过程也写一下吧,谈不上经验,大家姑且看看;P   首先是打印: 我用的是硫酸纸,按理说阻焊应该是打在菲林上的,但是出去转了一圈没有愿意 ...…

查看全部问答>

各种整流电路图解分析

各种整流电路图解分析…

查看全部问答>

[S3C6410学习心得之一]ok6410开发板基于Ubuntu9.10开发环境搭建-串口

  系统:Ubuntu9.10开发板:飞凌OK6410    最近购入一块新的开发板,芯片是基于三星的S3C6410,ARM11,使用之后发现,速度果然很不错,跟ARM9的S3C2440不可同日而语。飞凌的开发板质量很不错,跟友善之臂相比,谁比较好一目了 ...…

查看全部问答>

modelsim后仿真问题

modelsim可以前仿真,但是不能后仿真,是软件问题还是没有破解完全?我敢保证仿真过程的操作一定正确。…

查看全部问答>