- 博客(275)
- 资源 (4)
- 收藏
- 关注
原创 嵌入式设备EMC安规检测参考
测试产品在电源电压骤降/中断时的工作能力,验证供电稳定性。测试产品对电源线传入电磁干扰的抗扰能力,确保正常工作。测试产品对雷击浪涌电压/电流的抗扰能力,保护设备安全。测试产品对静电放电的抗扰能力,模拟人体/物体静电影响。测试产品对电快速瞬变脉冲群的抗扰能力,模拟瞬时干扰。测试产品对工频磁场的抗扰能力,模拟日常电网磁场影响。测试产品对空间电磁辐射的抗扰能力,验证环境稳定性。测试产品产生的谐波电流,避免污染电网影响其他设备。测试产品引起的电源电压波动,避免影响其他用电设备。EMC类瞬态抗扰项目,脉冲干扰防护。
2025-11-28 15:38:23
306
原创 Gemini和openAI分别怎么看待GPU和TPU
GPU与TPU在AI计算领域各有优劣:GPU凭借通用性强、生态成熟等优势,适用于多样化任务和边缘部署;TPU则专为深度学习优化,在大规模训练和云端推理中表现突出。两者在竞争中互补,未来可能形成异构计算格局。
2025-11-28 11:30:19
670
原创 Qt Creator代码样式自动整理
摘要:本文介绍如何在QtCreator中配置clang-format插件实现代码自动格式化。首先需在Ubuntu上安装clang-format工具,然后在IDE中启用插件并设置保存时自动格式化。重点分享了常用格式化配置模板,包括4空格缩进、右对齐指针、保留2个空行等风格设置。通过简单配置,即可实现Ctrl+S保存时自动按指定格式整理代码,提高开发效率。
2025-11-24 18:38:05
569
原创 i.mx8 HDMI显示分辨率异常(软件排查)
摘要:本文分析了显示器分辨率异常问题,指出EDID(扩展显示标识数据)是影响分辨率的关键因素。EDID作为显示设备的"身份证+能力说明书",存储着设备的分辨率、刷新率等重要参数。当EDID缺失、损坏或不匹配时,会导致系统默认使用800×600等低分辨率。解决方案是强制设置分辨率而非读取EDID:创建EDID目录、放入通用EDID文件并修改U-boot启动参数,强制输出1920×1080分辨率,经测试可解决90%的显示异常问题。该方法避免了EDID读取带来的不确定性,确保多台显示器显示正常
2025-11-21 17:15:57
74
原创 Qt SQLite在I.mx8上使用问题
摘要:本文记录了在i.MX8嵌入式平台上解决Qt应用使用SQLite时遇到的驱动加载问题。通过最小测试程序定位到缺少SQLite驱动插件,采用交叉编译方式重新编译Qt 6.3.2源码中的SQLite驱动模块。详细说明了从源码下载、环境配置到交叉编译的完整过程,最终将生成的驱动库部署到目标板,成功解决了"QSQLITE driver not loaded"的问题。该方法适用于嵌入式环境下Qt数据库驱动缺失的排查与解决。
2025-11-21 16:21:35
598
原创 Qt 编译报错:-1: error: fatal error: Killed signal terminated program cc1plus
Qt项目编译时因添加大量高清图片资源导致内存不足报错,可通过以下步骤解决:1)删除原编译目录并重新qmake;2)减少并行编译数;3)增加交换内存:先关闭swap文件,创建6G新swap文件(可调整大小),设置权限后格式化启用,并配置开机自动加载。这些操作可缓解编译时内存不足问题,其中扩展swap空间是最有效的解决方案。
2025-10-23 11:25:01
344
原创 i.mx8上Qt应用星期显示异常
在Qt中显示中文星期格式的解决方案:当使用"yyyy年M月d日dddd"格式显示时间时,若出现英文星期(如Wednesday),可通过强制使用中文字符集转换解决。方法:1)获取当前时间QDateTime对象;2)初始化中文字符集QLocale(Chinese,China);3)使用toString()方法转换时间格式。关键代码:chineseLocale.toString(currentDateTime,"yyyy年M月d日dddd")。此方法需设备已安装中文字符集,
2025-10-11 18:04:56
275
原创 i.mx8 RTC问题
摘要:外置RTC模块在i2c总线上注册读写正常,但偶发重启后系统时间和RTC时间均恢复默认值(系统2022年,RTC 1970年)。经排查发现主板默认使用内部RTC0(NXP芯片集成),未正确调用外置RTC1。通过修改设备树禁用NXP的snvs_rtc节点(添加status="disabled"),使系统默认使用外置RTC。最终实现时间同步正常,并需设置时区为Asia/Shanghai。该方案通过简化设备树配置解决了RTC源冲突问题。
2025-07-16 17:14:15
586
原创 i.mx8 网络速率测试
摘要:测试网口千兆速率性能,在虚拟机安装iperf3工具并开启服务端,板载端通过iperf3连接192.168.0.155服务器进行10次100MB数据传输测试。结果显示板载端和服务器端测试数据均符合预期,验证了网口达到千兆传输速率的设计要求。
2025-07-10 09:43:41
450
原创 i.mx8 开机启动服务
摘要: 针对设备开机时间过长问题,通过systemctl命令分析了系统启用的服务。列出包括网络、安全、硬件支持等42项服务,并分类评估其必要性。其中19项核心服务(如systemd-networkd、syslogd)建议保留,23项非必要服务(如蓝牙、NFS)可关闭优化。特别指出ntpd等4项冗余服务应优先禁用。通过合理配置服务启停,可有效缩短系统启动时间。建议结合实际使用需求选择性禁用非必要服务,同时保留关键系统功能。
2025-07-07 18:12:11
1054
原创 i.mx8使用CAN模块
摘要:在嵌入式平台下使用CAN通信时,Qt程序在Linux和VirtualCAN调试正常,但在嵌入式环境中出现无法开启CAN或使用异常的问题。问题源于嵌入式环境缺少必要的库文件。
2025-07-07 10:54:27
316
原创 i.mx8HDMI调试记录
HDMI直连调试常见问题及解决方案:1.主副设置需正确配置,设备树中需禁用原LT8912B芯片;2.桌面显示异常需调整X11或Weston配置,指定正确输出端口;3.分辨率问题需重点检查i2c上拉电阻配置(推荐1.5kΩ-4.7kΩ),不当电阻值会导致EDID读取失败、HPD信号抖动等问题。不同场景推荐电阻值:高速上电用1.5kΩ,平衡功耗选2.2kΩ,低功耗设计用4.7kΩ。需结合屏幕参数、走线长度等因素综合考量,同时注意HDMI线缆屏蔽层接地。
2025-07-03 10:22:47
537
原创 状态机和RTOS
写单片机程序,有时用到状态机,有时候用RTOS,那他们到底有什么区别,要怎么选?首先说明,实时操作系统本质也是一个软件系统,也在执行while(1)操作,但是和状态机有众多区别。
2025-01-09 17:56:33
714
原创 Qt 断开信号槽的方式
需要断开的地方diconnect,需要连接的地方connect,最简单直接的办法,但是会很繁琐,如果频繁操作,多出了非常多的重复代码,逻辑混乱。使用官方QSignalBlocker,这个是这种场景下最推荐的,用于阻塞对象的所有信号,而且是作用域生效,超出作用域后自动解除。使用标志位,通过条件判断的方式控制功能的开关。但是这么做有点底层状态机的模子,看起来也复杂。
2024-10-24 14:15:44
760
原创 R155法规
R155法规是应对联网和自动驾驶汽车网络安全挑战的重要法规,旨在确保车辆在整个生命周期中具备健全的网络安全防护措施。通过建立和实施网络安全管理系统,制造商能够更好地识别、应对和管理网络安全威胁,提升车辆的安全性和可靠性。
2024-09-29 17:38:49
705
原创 Docker技术
Docker技术通过其独特的容器化方式,带来了环境一致性、高效资源利用、便捷的部署和管理、支持微服务架构以及丰富的生态系统,极大地提升了开发、部署和运维的效率。无论是对于开发人员、运维团队还是企业级用户,Docker都提供了一种高效、灵活的解决方案,使得应用程序的开发和运维变得更加快速和可靠。
2024-09-29 17:00:09
544
原创 Qt Qvariant
QVariant是 Qt 框架中的一个非常强大的类,它用于存储各种不同类型的数据,并提供了一种统一的方式来处理这些数据。QVariant可以存储大多数基本数据类型,如整数、浮点数、字符串、日期时间等,以及更复杂的数据类型,如QColorQImageQByteArrayQListQMap等。
2024-06-27 14:39:09
562
原创 Qt 使用QJsonModel的问题
需要表格记录json数据,使用Qtreeview显示并修改,使用开源的第三方类QJsonModel,即可快速完成。
2024-06-27 13:52:20
648
原创 imx.7交叉编译libX11
该文章已经很详细的讲到了移植全过程,实践下来并没有太多问题,并且他文中提到的问题一定会出现,没有提到的也会出现,大致是因为自己虚拟机环境,以及版本问题,只需要根据第一条报错逐条进行修复即可。原因是libxcb的版本太新,我使用最新的版本,正确配置和安装后,在编译libX11还是会报错,解决办法:替换为较为早期的版本,比如libxcb-1.16,只要低于libproto版本即可。libX11报错中断编译后,解决完问题,make clean,重新配置编译。以下是我个人的环境变量设置,仅供参考。
2024-04-15 14:20:20
703
原创 Linux-Arm GDB调试(本地和远程)
Linux本机调试使用GDB非常方便,但嵌入式Linux设备资源有限,通常并没有交叉编译工具,那嵌入式设备上的应用发生问题如何查找问题?通常IDE有远程DEBUG功能,这种能快速定位固定且容易复现的错误。随机性问题,问题一旦发生,保存现场十分重要,不知道何时才会复现,要基于当前的设备状态,尽可能的去追溯本次的问题,这样才能有效的解决问题。个别情况下,并没有发生crash,但是程序卡死或者无响应,这个时候并不会生成coredump文件,那么就需要进行远程在线调试。最终定位到问题所在。
2024-04-03 14:54:58
1061
原创 Qt QMetaObject::invokeMethod
QMetaObject::invokeMethod是一个静态函数,用于在Qt信号槽机制之外,异步调用QObject子类的公开槽函数或者调用任意可调用对象。主要处理不同线程异步调用或延时操作。
2024-03-13 11:32:37
3926
原创 2023回顾
踩了这些坑之后,再次做项目时,如果使用到触摸屏,我可能会在资源够用的情况下,单独给触摸屏一路i2c总线去使用,其余的i2c外设走另外的总线,这样能避免脏数据、或者某个从设备死锁不释放总线时造成的数据传输错乱,进而影响全局的触摸屏的使用。再次使用Qt时会特别注意焦点切换的问题,界面切换了焦点没有带过去的话,在多个模态窗口的焦点切换就会滞后,或者承载焦点的页面已销毁,那么就会导致焦点错乱,现象看起来也是界面卡死。一文中,正如文中提到的,上述的一些操作能极大可能得避免触摸屏卡死的发生,但也并非一劳永逸。
2024-01-09 12:04:39
616
原创 Qt QMetaObject::invokeMethod
invokeMethod 是Qt元对象系统中的一个函数,用于程序运行时动态的调用对象的槽函数或者静态函数。
2023-10-24 18:46:33
1160
jsonTool.zip
2021-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅