news 2026/7/10 12:11:32

智能机器狗项目开发中的问题记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
智能机器狗项目开发中的问题记录
  1. 还没有将创建命令添加到启动脚本 使用消息队列和共享内存 需要
mkdir/tmp/ipc/shmem-p mkdir/tmp/ipc/msgqueue/peer-p
  1. 板子焊接完成后,做硬件测试时发现板子虚焊问题较多

  2. 链接stlink后,有时能烧录有时不能,板子还一直上锁,硬件调试了挺长时间,结果发现是软件烧录口没有打开

  3. 问题:做数据库存储存历史记录(包括时间戳)时,时间戳和时区的混乱导致调试了很长时间,时间转换就是不对。解决:明确概念 时间戳是绝对的都是utc时间戳 根据utc时间戳可以转换成本地时间或utc时间;虚拟机的时区务必设置成北京时间

  4. 问题:测试控制指令时,测试程序一直收不到消息。 解决:msg的类型虽然没用,但必须大于0

  1. wifi模块一直不能正常通信 被卡住很久 最后发现是硬件问题 板子上的双刀三制开关有正反 开关焊反了!

  2. 遇到段错误,没有log

可以通过valgrind定位段错误

gcc -g your_code.c -o test.out valgrind --leak-check=full --track-origins=yes ./test.out

分析发现是用cJSON时返回了NULL,对NULL进行了解引用操作

  1. 问题:串口连接电脑后 电脑已经识别到了ch340串口 但是单片机给串口发数据 串口收不到

解决: 控制变量法 先用了一块好的板子 测试后发现代码没问题,type c的数据线也没问题,stlink也没问题,最后测试发现是双刀三掷开关拨到串口档 开关没有接通 应该是开关坏了或这开关没焊接好

  1. wifi模块烧录完固件后,复位后收不到ready。用AI分析log发现,别人给的固件有问题,esp8266的flash大小是1MB,而固件是8MB,自己重新到官网下载对应1MB固件,重新烧录即可。

  2. 给单片机烧录固件时,stlink识别不到,而插上stlink的vcc引脚(3.3V)就识别到了,usb供电时,用万用表测量发现vcc的引脚是4.69V!又经过检测发现ldo降压芯片烧了,失去了降压功能,需要换一个AMS117-3.3。

  3. 代码烧录到板子后,没有看到相应的调试信息。最后发现是栈溢出问题,设置的栈大小为0x400,即1024个字节,而这里定义了过大的局部变量,导致程序崩溃

  1. ap3216 位置和光照读出来一直是0 卡了很久很久 不是代码问题 不是焊接问题 不是模块坏了的问题 是少接了一根引脚 ap3216不光要接vcc 还得将vled引脚接3.3v!!

  2. stm32固件运行后,卡在准备复位
    mcu固件的bug很难找,因为它不像跑在linux系统上的那些程序,还可以借助valgrind调试等等,这里直接卡死在这了。一个一个排查也没发现问题,最后重写时才发现这里是重新开启空闲中断的位置不对

一开始是跟开启uart3中断的函数一起放在了47行,这样的话,只要有串口中断进来(包括串口3)就会再一次开启中断,会导致串口5中断一直重复开启;后面又放在了memset后面,这时只有透传模式下才会重新开启串口5中断,在配置网络时,会导致串口5中断不会重新开启,只能放在上图中的位置,有串口5中断来了就重新开启串口5空闲中断

中断,在配置网络时,会导致串口5中断不会重新开启,只能放在上图中的位置,有串口5中断来了就重新开启串口5空闲中断

  1. 用串口1 printf打印调试信息时 有时能打印出来 有时不能 电脑问题?未解决
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 8:18:30

如何在数据科学职位申请中创造机会并获得成功

原文:towardsdatascience.com/how-to-create-opportunities-and-succeed-in-data-science-job-applications-3881a5c86508?sourcecollection_archive---------7-----------------------#2024-10-29 我从成功与失败中汲取的宝贵经验,将帮助你在职业道路上…

作者头像 李华
网站建设 2026/7/10 9:55:37

LangFlow条件判断节点使用方法:实现智能路由逻辑

LangFlow条件判断节点使用方法:实现智能路由逻辑 在构建大语言模型(LLM)驱动的应用时,一个常见的挑战是:如何让系统“听懂”用户的意图,并据此做出不同响应?比如,用户问的是退货政策…

作者头像 李华
网站建设 2026/7/10 2:45:15

ModbusTCP报文格式说明:图解入门与实例演示

深入理解 Modbus TCP 报文结构:从零开始的实战解析 在工业自动化和物联网系统中,设备之间的通信是系统的“神经系统”。而在这条神经网络中, Modbus TCP 是最常见、最可靠的一种协议之一。它简洁、开放、易于实现,被广泛应用于 …

作者头像 李华
网站建设 2026/7/10 11:19:52

Topit:3步解决Mac窗口遮挡难题,让你的关键内容始终置顶

Topit:3步解决Mac窗口遮挡难题,让你的关键内容始终置顶 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在日常工作中,你是否…

作者头像 李华
网站建设 2026/7/10 11:18:12

Topit窗口置顶:macOS多任务管理的终极解决方案

Topit窗口置顶:macOS多任务管理的终极解决方案 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在当今快节奏的数字工作环境中,macOS用户…

作者头像 李华