电子商务网站建设与开发广东东莞招工信息最新招聘

张小明 2026/1/10 18:52:12
电子商务网站建设与开发,广东东莞招工信息最新招聘,贵州省住房城乡建设部网站,沈阳世纪兴网站制作1.难题 作为一名嵌入式开发者#xff0c;想必各位小伙伴对以下场景早已司空见惯#xff1a;当你正埋头于调试那几行关键代码#xff0c;或者准备给项目打包成完工版本的时候。总有一个声音会适时响起#xff1a;“咱再加个小功能呗#xff1f;”通常这小功能#xff0c;相…1.难题作为一名嵌入式开发者想必各位小伙伴对以下场景早已司空见惯当你正埋头于调试那几行关键代码或者准备给项目打包成完工版本的时候。总有一个声音会适时响起“咱再加个小功能呗”通常这小功能相当于要求你的自行车瞬间变身成摩托车。运气好点是场局部“微创手术”运气不好呢直接项目重写为啥咱总能精准踩坑别怀疑这大概率不是命运的捉弄而是咱自己挖的。软件设计原则好像听说过。设计模式听起来像时尚界的潮流咱搞硬件的实在人用不上吧于是咱的代码就成功进化成了“面向需求变更崩溃编程”这种代码的结构之“精妙”让任何试图修改它的人都想给自己点一首《凉凉》。为了避免下次需求变更时咱的代码再次表演“原地爆炸”我将以一个代码来介绍如何遵循软件设计原则如何使用良好的设计模式和架构。2.背景前文提到作为一名硬件工程师因为生活饮食不规律缺少运动导致最近做体检时发现我目前的血糖偏高。为实现血糖的动态监测我还网购了一个家用的血糖仪每天定时测量血糖数据。由于自己从事多年的仪器仪表行业对这个每天用来测血糖的“小家伙”充满好奇犹豫了很久将它拆开后发现一个惊人事实整个电路板只有一颗芯片一款专用于血糖仪的单片机BH67F2472。详细查看电路板后我发现仪器的制造商居然把芯片的程序下载口预留出来了我网购了一个Holtek的下载器安装了开发工具HT-IDE3000并将这个自己写的程序下载到了血糖仪电路板的芯片中。接下来我将以BH67F2472的一个代码来介绍如何遵循软件设计原则如何使用良好的设计模式和架构。3.电路介绍程序使用了以下硬件资源按键GPIO口PA3连接按键通过读取PA3的电平信号来检测按键是否按下蜂鸣器GPIO口PB6连接蜂鸣器过控制PB6的电平驱动蜂鸣器让蜂鸣器发出声音液晶屏LCD驱动引脚COM0COM3SEG1SEG8连接到了段码液晶屏微控制器内部的 LCD 驱动控制器按照特定的扫描时序在 COM 和SEG 线上产生驱动电压点亮或熄灭液晶屏上特定的字段温度测量ADC通道1的PB3连接NTC热敏电阻NTC的电阻值随环境温度变化而变化当温度变化时NTC上的分压值随之改变。ADC通道读取PB3上的模拟电压值实现温度测量串口通信UART0的TX/RX连接串口实现输出调试打印信息。4.程序介绍4.1.模块化设计程序采用了模块化设计每个功能独立成一个模块。简单来说就是把软件这个大工程像搭乐高积木一样拆成了一个个独立的功能模块 —— 每个模块负责一件事谁也别抢谁的活儿。这种设计方法的核心思想就是 分而治之。通俗的讲就是当你面对一个复杂的大问题最明智的做法就是把它“化整为零”拆解成一系列小到可以轻松搞定的小问题然后挨个解决掉。程序的模块化设计如下图程序包含三个任务任务一GPIO任务GPIO口PA3连接按键GPIO口PB6连接蜂鸣器程序通过按键实现用户对显示内容的控制短按按键实现循环切换显示模式温度→血糖→电量→温度每切换一次蜂鸣器会发出短鸣提示。任务二LCD任务程序控制微控制器内部的 LCD驱动控制器点亮或熄灭液晶屏上特定的字段实现3位7段数字的显示同时段码液晶屏还可以显示不同数据的单位。任务三NTC任务ADC通道1的PB3连接NTC热敏电阻NTC的电阻值随环境温度变化而变化当温度变化时NTC上的分压值随之改变。ADC通道读取 PB3上的模拟电压值实现温度测量。这种模块化设计严格遵循了单一职责原则——每个模块只专心做好自己那一摊事儿绝不越界抢活干模块之间奉行“君子之交淡如水”彼此低耦合互不依赖。这样一来修改一个模块的代码完全不用担心会“城门失火殃及池鱼”各干各的互不打扰世界和平模块化设计提高了软件系统的扩展性软件工程源码中功能模块如下4.2.调度器RTOS 通常需要额外的内存开销用于任务栈、内核数据结构以及提供任务调度。由于BH67F2472有限的计算资源如 RAM、ROM 容量较小和相对较低的运算性能无法有效地承载一个完整的实时操作系统RTOS运行环境。为了在资源受限的条件下实现多任务逻辑的轮转执行开作者设计并实现了一个精简的轮询式任务调度器。HOLTEK开发环境所使用的 C 编译器不支持函数指针函数指针是构建动态任务调用机制的常用且高效手段缺失函数指针实现调度器将变得比较笨拙只能使用枚举量和switch语句实现在scheduler文件中实现了一个轮询执行的“伪调度器”关键代码如下这种设计实现的调度器被称为“伪调度器”因为这个调度器有以下特点任务执行是顺序执行、非抢占执行。一个任务必须主动执行完毕并返回break 出case后调度器才能切换到下一个任务不存在由中断或系统调用触发的任务强制切换。静态绑定 任务与枚举值、case 分支是静态编译时绑定的缺乏运行时动态创建、删除或修改任务列表的能力。轻量级 其实现极其简洁仅需一个枚举变量、一个 switch 语句和若干函数调用几乎不消耗额外的 RAM资源栈空间除外代码体积ROM也很小完美契合资源受限环境。4.3.分层设计每一个任务都采用了分层设计分层设计的核心思想也是“分而治之”分层设计将软件功能水平分割成合理的多个子系统软件中紧密关联的部分被集中放在一个层内。分层架构有以下优点每一层都把一个具体功能抽象化。可以降低代码的相互依赖程度更改代码时影响的层很少。层可以被复用。程序中采用了2层的分层设计第1层处理MCU寄存器相关操作第2层处理驱动控制和逻辑控制分层设计提高了软件系统的移植性如果项目更换了MCU那么只用修改第1层如果更改了业务逻辑那么只用修改第2层。分层架构框图如下以GPIO任务为例GPIO的BSP层的接口函数是gpio_bsp_operation上层文件可以通过gpio_bsp_operation函数完成GPIO的寄存器初始化、读操作、写操作。GPIO任务的BSP层代码如下4.4.隔离设计程序中的任务相互隔离所有任务只与调度器进行数据交互然后调度器将消息推送给其他任务。各个任务之间的信息交互模式如下这种设计模式为中间者模式。在中间者模式对象之间不能直接通信而是间接地通过中间者进行通信。中间者收到信息后再将信息转发给相关对象这样减少了对象之间的相互依赖。中间者模式有以下优点对象之间是松耦合。将多对多的关系通过中间者转换成一对一的关系。修改一个对象不需要考虑其它对象通信适应问题。这种设计减少了任务之间的耦合提高了软件的扩展性消息交互代码如下4.5.程序流程图程序主要分为四个过程初始化系统时钟配置MCU系统时钟为8MHZ执行调度器初始化动作调度器依次调用所有任务中的initialization函数执行各个任务初始化。执行调度器依次调用所有任务read函数获取改任务输出信息并将读取到的信息通过调用其他任务write函数写入执行操作。执行调度器依次调用所有任务run函数然后每个任务在后台运行。程序流程图如下感兴趣的小伙伴希望获取资料的小伙伴可以评论区留言或者私信作者。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

公司自建网站哪个浏览器任何网站都可以访问

在2025年,单北斗GNSS位移监测产品因其精确和高效的性能,正成为地质灾害监测和基础设施安全管理的重要设备。本文将重点介绍一些在市场上口碑良好的单北斗GNSS产品,涵盖变形监测一体机及相关传感器。具体来说,这些产品能够提供亚毫…

张小明 2026/1/10 16:08:16 网站建设

咸阳做企业网站建筑公司名称大全简单大气

2025必备10个降AI率工具测评榜单 2025年降AI率工具测评:为何需要专业榜单? 随着高校和科研机构对AIGC内容的识别能力不断提升,论文、报告甚至日常作业中的AI生成痕迹越来越容易被检测出来。对于本科生而言,如何在保证内容原创性的…

张小明 2026/1/3 7:59:22 网站建设

网站源码是什么意思wordpress网站地图插件

2025最新!8个AI论文工具测评:本科生写毕业论文必备清单 2025年AI论文工具测评:为本科生量身打造的写作助手 随着人工智能技术的不断进步,越来越多的学术写作工具开始进入高校师生的视野。对于本科生而言,撰写毕业论文不…

张小明 2025/12/28 14:22:18 网站建设

wordpress如何搬站国家示范建设成果网站

本文详细介绍了如何在Dify平台上构建RAG(检索增强生成)系统的实战教程。通过创建知识库、上传文档、配置分段模式和Embedding模型,将私有数据注入Dify的向量数据库。文章强调了"召回测试"功能对调试RAG检索环节的重要性&#xff0c…

张小明 2025/12/29 16:36:10 网站建设

哪个网站可以做高数题免费发布工程信息网站

Inter字体:重新定义数字时代的屏幕阅读体验 【免费下载链接】inter The Inter font family 项目地址: https://gitcode.com/gh_mirrors/in/inter 在当今数字化的世界里,屏幕已经成为我们获取信息的主要窗口。而Inter字体作为专为现代数字环境量身…

张小明 2025/12/30 0:18:23 网站建设

做软件的叫什么职业seo优化方案总结

树莓派摄像头遇上 Home Assistant:打造真正“看得见”的智能家居 你有没有过这样的经历?出门后突然怀疑门没锁,或者半夜听到异响却不敢下床查看——这时候,如果家里有一双“永不疲倦的眼睛”,能随时告诉你真实情况&…

张小明 2025/12/29 18:07:35 网站建设