STM32项目总结及代码中delay函数需慎用

STM32项目总结及代码中delay函数需慎用这半年实验室做了个智能XX的调度平台,大概思想是通过部署的端设备实时采集信息并且通过通信的方式发送给云端服务器,最后可以实现WEB端和小程序的实时访问和监控,上位机方面自不用说,硬件方面,昨天把做出的智能XX终端给实验室的嵌入式大牛徐老师指教下,徐老师看到代码第一眼就说你们这个是不是根据网上某些案例改的,我回答说是根据淘宝店家或者论坛上找到的代码改的,然后徐老师点评到,如果做的东西是…

大家好,又见面了,我是你们的朋友全栈君。

       这半年实验室做了个智能XX的调度平台,大概思想是通过部署的端设备实时采集信息并且通过通信的方式发送给云端服务器,最后可以实现WEB端和小程序的实时访问和监控,上位机方面自不用说,硬件方面,昨天把做出的智能XX终端给实验室的嵌入式大牛徐老师指教下,徐老师看到代码第一眼就说你们这个是不是根据网上某些案例改的,我回答说是根据淘宝店家或者论坛上找到的代码改的,然后徐老师点评到,如果做的东西是为了完成作业或者某些演示项目的验收,做成这样实现了所有需要的功能也还能说的过去。但是如果是要应用到实际环境的工程项目,做成这样是绝对不过关的。做工程项目,所有的代码一定要亲手写出,每行代码都要清楚的知道有啥作用,根据产品的功能自己设计电路板,做成的产品也不能像我们的这个一样所有组件通过杜邦线相连,徐老师说杜邦线相连在应用到实际环境很容易出问题,是不合格的。

       然后又看到了我们代码里很多个delay_ms(),delay_us(),徐老师点评到在while(1)的循环以外用delay函数也还可以,但是在while(1)里面,太多的delay相当于让CPU在这段时间内空跑,浪费了很多的CPU性能,每个单片机的程序相当于自己编写了一个操作系统,而我们这个操作系统认为的降低了太多性能,不够介于我们项目实现的功能也不复杂,然后又是用的F103的芯片,性能方面就算浪费了很多也感觉不到,但是如果用到运算性能低很多的芯片就一定要谨慎处理这个问题了。emmm…被徐老师这么点评了下,感觉进一步要做的工作还有非常非常多,剩下的工作只能要研一研二的师弟加油完成了,至少先把现在程序代码存在的问题解决掉。而我这两个月全力以赴先把硕士毕业论文搞定,到了博士阶段就要换地方了并且本身也不是嵌入式方向,所以跟这个项目也暂时告一段落,但徐老师说的点评以后一定会多多注意,徐老师搞了一辈子嵌入式相关的东西,现在博导+教授并且快要退休了,还身处一线每天亲自写代码,真是让人钦佩。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138520.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 字符串正则匹配leetcode_动态规划100题

    字符串正则匹配leetcode_动态规划100题原题链接给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = “aa” p = “a”输出:false解释:”a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa” p = “a*”输出:true解释:因为 ‘*’ 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是

    2022年8月9日
    5
  • export添加环境变量不生效_如何添加环境变量里面的路径

    export添加环境变量不生效_如何添加环境变量里面的路径export命令功能说明:设置或显示环境变量。语  法:export[-fnp][变量名称]=[变量设置值]补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。参  数:   -f 代表[变量名称]中为函数名称。 -n 删除指定的变量。变量实际上…

    2025年9月26日
    7
  • python数组_python在数组中查找指定元素

    python数组_python在数组中查找指定元素一,创建列表创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来:member=[‘a’,’b’,’c’,’1′,’2′,3]二,访问列表列表索引从0开始,使用下标索引来访问列表中的值:member=[‘a’,’b’,’c’,’1′,’2′,3]print“member[0]:”,member[0]输出结果:member[0]:a三,更新列表1.append方法可以在列表后方添加…

    2022年8月13日
    5
  • Objective-C 内存管理之 _ARC

    Objective-C 内存管理之 _ARC

    2022年1月28日
    47
  • linux查看文件位置

    linux查看文件位置1 whereiswhere 命令是定位可执行文件 源代码文件 帮助文件在文件系统中的位置 这些文件的属性应属于原始代码 二进制文件 或是帮助文件 whereis 程序还具有搜索源代码 指定备用搜索路径和搜索不寻常项的能力 如果省略参数 则返回所有信息 test localhost whereisbashb bin bash etc bash bashrc usr share man man1 bash 1 gz 说明 以上输出信息从左至右分别为查询的程序

    2025年12月5日
    3
  • MYSQL库,表,记录的基本操作

    数据库操作1、显示数据库默认数据库:mysql-用户权限相关数据test-用于用户测试数据information_schema-MySQL本身架构相关数据2、创建数据库3、使

    2022年3月29日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号