简单的做网站软件有啥国外做网站的软件

张小明 2026/3/2 18:06:44
简单的做网站软件有啥,国外做网站的软件,wordpress已停止访问,烟台专业做网站公司哪家好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进行投诉反馈,一经查实,立即删除!

深圳企业企业网站建设天元建设集团有限公司六大板块

如何避免“此扩展程序不再受支持”警告?科学配置PaddlePaddle IDE环境 在日常AI开发中,你是否曾被VS Code里那个刺眼的黄色弹窗困扰过——“此扩展程序不再受支持”?点击后功能灰掉、自动补全失效、可视化工具无法加载……明明昨天还能用的插…

张小明 2026/1/18 0:21:15 网站建设

wordpress申请网站wordpress默认注册框

iLogtail新手入门指南:5分钟快速部署日志采集神器 【免费下载链接】ilogtail Fast and Lightweight Observability Data Collector 项目地址: https://gitcode.com/gh_mirrors/il/ilogtail 什么是iLogtail及其核心价值 iLogtail是一款轻量级、高性能的日志采…

张小明 2026/1/18 0:19:14 网站建设

网站建设推销话术案例建设网站公司怎么分工

要求:开源,免费,技术支持 博客:WordPress 开发语言:PHP 数据库:MySQL 功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏 平台:Window…

张小明 2026/1/18 0:17:14 网站建设

手机网站打不开的解决方法WORDPRESS导购主题 WYZDG

在挑选AI论文工具时,面对多种功能(如降重、降低AIGC检测率、辅助写作等),用户常难以快速决策。通过实测数据和真实反馈对比8款主流平台,以下为综合效率、准确度及操作便捷性的实用排名概览。排名工具名称关键优势1aibi…

张小明 2026/1/18 0:15:13 网站建设

校园网站设计开题报告赵县住房和城乡建设局网站首页

在当今多模态AI时代,文档中的图像往往蕴含着比纯文本更丰富的信息价值。然而,从PDF、Word等格式文档中精准提取图像却成为许多开发者和数据科学家的痛点。传统方法要么需要复杂的手动操作,要么难以保持图像质量和元数据完整性。 【免费下载链…

张小明 2026/1/18 0:13:11 网站建设

最大的网站开发公司广元北京网站建设

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个DataX-Web原型验证工具包,包含:1.预配置的Docker容器;2.示例数据源和目标库;3.典型场景的JSON模板;4.快速验证脚…

张小明 2026/1/18 0:11:10 网站建设