热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

【开发手札】关于开发的一些个人心得见解

近来接触的一些朋友搞开发过程中遇到各种各样的问题,有些是比较基础的,有些是比较棘手的,各种问题都有,这里不针对具体问题进行分析,主要是发现他们在解决思路和解决方法上还存在问题

        近来接触的一些朋友搞开发过程中遇到各种各样的问题,有些是比较基础的,有些是比较棘手的,各种问题都有,这里不针对具体问题进行分析,主要是发现他们在解决思路和解决方法上还存在问题,这里想谈谈自己的一些心得见解,希望对大家有用。

        硬件方面自己也是菜鸟,懂得也不多,这里主要说说软件调试方面的方法。一般软件开发都会涉及到多个模块,很多朋友都是把硬件模块全都串起来后,再通过编写软件看硬件工作正不正常,比如通过看灯闪不闪,声音有没有输出来判断程序是否正常,这种方法能判断程序运行正不正常,但是却无法判断问题出在哪。

        这里建议可编程模块最好先独立编程开发,用可视化手段去判断程序是否工作正常,而不是通过外部硬件设备如LED灯之类的来检查程序是否正常工作。比如两个单片机A跟B进行通信,A向B发送数据,B根据A的数据来控制一个LED三色灯显示,A跟B之间采用串口的方式进行数据通信,这时很多朋友可能是先将A、B、LED三个部件先串起来,然后往A跟B刷写程序,然后上电,看LED灯是否正常来判断AB程序是否正常,那么问题来了,如果显示的是预期结果,那么没什么问题,如果显示的不是预期结果,比如颜色不对或者压根就不显示,或者常亮不变色,这时怎么来判断程序哪里出错呢?造成这种的原因很多,硬件接线短路,程序代码错误都有可能出现运行不如预期,这时就不太好排查错误了,所有还是建议将模块分开单独编程调试,确保软件不存在问题,再来排查硬件问题,这样就简单多了,所以上面那个问题我们可以这样来调试。

        首先先测试A往B发的数据正不正确,将A的串口连接电脑,将程序刷写到A,看电脑串口能不能接收到A发送过来的数据,然后测试B接受数据处理的正不正常,将B的串口连接电脑,用电脑模拟模块A往B发送数据,B根据接收到的数据进行处理,这里我们可以在程序里的控制部分添加输出代码进行调试,比如收到数据r显示红色,收到数据y显示黄色,这里可以改为收到数据r在串口显示1,收到数据y在串口显示数据2,这样就可以在串口判断程序是否工作正常了,两边模块的代码都确保正常运行后就可以将各模块部件连接起来进行统一调试。

排除了软件问题后,硬件问题就简单很多了,可以从接线、电源等方面入手。还有一个问题就是编码的问题,特别是不同从厂商之间生产的模块之间的通信,或者通过不同协议进行网络通信的情况,之前做过一个用PC通过wifi连接采用udp协议控制esp8266的模块,一开始发现正确的数据传输过去,esp8266模块怎么也没法正确运行,最后发现是数据编码的问题,esp8266使用的编码是gb2312,而pc端发送过去的编码是utf8,造成数据没法识别。所以这里也提出来希望能引起大家的注意。


在开发方面也是一个小学生,希望有兴趣的朋友可以加企鹅群(254267969)一起学习。



推荐阅读
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 华为智慧屏:超越屏幕尺寸的智能进化
    继全球发布后,华为智慧屏于9月26日在上海正式亮相,推出65英寸和75英寸版本。该产品不仅在屏幕尺寸上有所突破,更在性能和智能化方面实现了显著提升。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • Android 6.0 切换指定 Wi-Fi 的解决方案
    本文详细介绍了在 Android 6.0 系统中切换到指定 Wi-Fi 的方法,包括常见的问题、原因分析及解决方案。通过官方文档和代码示例,帮助开发者更好地理解和实现这一功能。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 云屏系统基于嵌入式微系统msOS,旨在解决当前嵌入式彩屏GUI编程中硬件要求高、软件开发复杂、界面效果不佳等问题。该系统通过结合MCU和Android技术,利用Html5+JavaScript实现高效、易用的图形用户界面开发,使嵌入式开发人员能够专注于业务逻辑。 ... [详细]
  • 三菱PLC SLMP协议报文详解
    本文详细解析了三菱PLC中使用的SLMP协议报文结构,包括其工作原理、通信流程及报文格式,旨在帮助工程师和技术人员更好地理解和运用这一协议。 ... [详细]
  • 使用C# .NET构建UDP点对点聊天应用
    本文详细介绍如何利用C# .NET框架开发一个基于UDP协议的点对点聊天程序,包括客户端与服务器之间的连接建立、数据传输等核心功能。 ... [详细]
  • MikroTik RouterOS U盘安装工具netinstall详解及使用技巧
    本文详细介绍了如何使用MikroTik RouterOS的U盘安装工具netinstall,包括其功能、使用方法及注意事项,旨在帮助用户更好地理解和应用这一工具。 ... [详细]
  • 请看|差别_Android 6.0 运行时权限处理解析
    请看|差别_Android 6.0 运行时权限处理解析 ... [详细]
  • 本文详细探讨了虚拟化的基本概念,包括服务器虚拟化、网络虚拟化及其在云计算环境中的应用。特别强调了SDN技术在网络虚拟化和云计算中的关键作用,以及网络虚拟化技术如何提升资源利用效率和管理灵活性。 ... [详细]
  • 基于花生壳域名的Android与ESP8266远程控制系统搭建
    本文介绍了一种使用Android设备、ESP8266模块及路由器,结合花生壳动态域名解析服务实现远程控制的方法。通过该方法,用户能够有效解决因公网IP变动导致的连接问题,实现稳定可靠的远程控制。 ... [详细]
  • 本文详细记录了作者从7月份的提前批到9、10月份正式批的秋招经历,包括各公司的面试流程、技术问题及HR面的常见问题。通过这次秋招,作者深刻体会到了技术积累和面试准备的重要性。 ... [详细]
  • 本文深入探讨了传输层的另一个重要协议——用户数据报协议(UDP)。在了解了TCP协议的基础上,我们将详细解析UDP的工作原理、应用场景及其优缺点,帮助读者全面理解为什么需要UDP。 ... [详细]
  • iOS13.3信号与续航表现如何?
    自iOS11以来,苹果的操作系统更新频率显著增加,尽管每次更新都伴随着改进和修复,但用户体验似乎并未显著提升。本文将深入探讨iOS 13.3的信号强度和电池续航能力。 ... [详细]
author-avatar
佩政哲维99
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有