吕梁市网站建设_网站建设公司_网站开发_seo优化
2025/12/23 0:36:22 网站建设 项目流程
  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打印调试信息时 有时能打印出来 有时不能 电脑问题?未解决

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询