当前位置: 首页 > news >正文

学习笔记|ADC|NTC原理|测温程序|STC32G单片机视频开发教程(冲哥)|第十九集:ADC应用之NTC

文章目录

  • 1.NTC的原理
    • 开发板上的NTC
  • 2.NTC的测温程序编写
  • 3.实战小练
  • 总结
  • 课后练习

1.NTC的原理

NTC(Negative Temperature Coefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热敏电阻。其电阻率和材料常数随材料成分比例、烧结气氛、烧结温度和结构状态不同而变化。现在还出现了以碳化硅、硒化锡、氮化钽等为代表的非氧化物系NTC热敏电阻材料。
在这里插入图片描述
材料学中阻值和温度的关系,公式: Rt = RT0EXP(Bn(1/T-1/T0))
式中RT、RT0分别为温度T、T0时的电阻值,Bn为材料常数.陶瓷晶粒本身由于温度变化而使电阻率发生变化,这是由半导体特性决定的。
在这里插入图片描述

可以看一下实际的一个表格(温度和电阻的表也叫RT表)
在这里插入图片描述

厂家一般会提供给你这样一个表格,当前温度对应的一个电阻的阻值,那我们把它拉成一个表格以后就可以很清晰的看到:
随温度升高,阻值变小,而且它每一个阻值对应的温度都是恒定的。采集出NTC的阻值,来换算出温度。非常常用的温度采集的办法。

开发板上的NTC

电路图:
在这里插入图片描述
NTC上部接R6的一个10K的一个分压电阻,与NTC串联,并且这个NTC边上并了一个电容(起滤波作用,可忽略)。
实际的电路示意为:
在这里插入图片描述
可以理解为是这么两个电阻,进行的一个分压,输出电压可以按公式计算。
实际使用是,单片机采集到的一个这个脚的电压,相当于就是Vref的一个电压,也就是我们这里Vref,和单片机的VREF一致。这边对应的是4096,如果说换算成ADC的话。
也就是可以用adc的数值去代表,对应的一个输出的一个adc的数值。可以在表格上查找或者插值。可以让单片机轻松很多嘛。计算的到可以用表格,帮助我们很快的计算出温度。单片机尽量不让它做复杂的运算,我们采集到单片机的ADC值是不是0-4095,只能采集整数,需要再数据处理时日前4舍5入。
在这里插入图片描述
假设采集数值为3908,则温度是-35度,那么如果采集值正好是3913,数值正好卡在3908,3918之间。可以假设,它如果说两个点之间间隙特别近,可近似为一条直线,可进行线性插值,
在这里插入图片描述
线性插值,得到结果。

2.NTC的测温程序编写

复制上节工程14.ADC应用,改名为:15.NTC温度采集,新建\HARDWARE\NTC,单独模块,并将.h文件加入C251引用路径。
需要新建采集函数,输入参数是一个0至4095的一个ADC数值,输出是一个-40至150度的温度,温度换算成整数-400至1500,放大10倍(保留1位小数)
函数返回值就是int类型:int Temp_Cal(u16 adc);
以后的场景中不一定是NTC,也可能是PT100等其他传感器,单独用函数比较容易模块化管理。
在ntc.c中加入函数定义及头文件引用,主函数里也要调用:

#include "ntc.h"//========================================================================
// 函数名称:Temp_Cal
// 函数功能:将读取到的ADC数值换算成温度
// 入口参数: @adc:adc的数值
// 函数返回:当前的温度值,保留1位小数,-40至-150度的温度对应的数值为-400至1500
// 当前版本: VER1.0
// 修改日期: 2023
// 当前作者:
// 其他备注:
//========================================================================
int Temp_Cal(u16 adc)
{}

可以把对应的参数数组先写过来方便查看,加入3列:adc数值 温度 序号,对齐一下。先定义数组:
有3956,肯定是16位的,数组定义的数据部分需要加大括号,表示赋初值:

u16 adc_table[]=
{ //adc数值	温度		序号3956, 	//-40		03947, 	//-39		13937, 	//-38		23928, 	//-37		33918, 	//-36		43908, 	//-35		53897, 	//-34		63886, 	//-33		73874, 	//-32		83863, 	//-31		93850, 	//-30		103837, 	//-29		113824, 	//-28		123810, 	//-27		133795, 	//-26		143779, 	//-25		153763, 	//-24		163747, 	//-23		173729, 	//-22		183711, 	//-21		193693, 	//-20		203673, 	//-19		213653, 	//-18		223632, 	//-17		233610, 	//-16		243587, 	//-15		253563, 	//-14		263538, 	//-13		273513, 	//-12		283486, 	//-11		293458, 	//-10		303429, 	//-9		313400, 	//-8		323369, 	//-7		333338, 	//-6		343305, 	//-5		353272, 	//-4		363238, 	//-3		373203, 	//-2		383167, 	//-1		393131, 	//0			403093, 	//1			413055, 	//2			423016, 	//3			432977, 	//4			442936, 	//5			452895, 	//6			462853, 	//7			472811, 	//8			482768, 	//9			492725, 	//10		502682, 	//11		512637, 	//12		522593, 	//13		532548, 	//14		542503, 	//15		552458, 	//16		562412, 	//17		572366, 	//18		582321, 	//19		592275, 	//20		602229, 	//21		612184, 	//22		622138, 	//23		632093, 	//24		642048, 	//25		652003, 	//26		661959, 	//27		671914, 	//28		681871, 	//29		691827, 	//30		701784, 	//31		711742, 	//32		721699, 	//33		731658, 	//34		741617, 	//35		751577, 	//36		761537, 	//37		771498, 	//38		781459, 	//39		791421, 	//40		801384, 	//41		811348, 	//42		821312, 	//43		831277, 	//44		841243, 	//45		851209, 	//46		861176, 	//47		871144, 	//48		881112, 	//49		891082, 	//50		901052, 	//51		911023, 	//52		92994	, 	//53		93966	, 	//54		94939	, 	//55		95913	, 	//56		96887	, 	//57		97862	, 	//58		98837	, 	//59		99813	, 	//60		100790	, 	//61		101768	, 	//62		102745	, 	//63		103724	, 	//64		104703	, 	//65		105683	, 	//66		106664	, 	//67		107644	, 	//68		108626	, 	//69		109608	, 	//70		110590	, 	//71		111573	, 	//72		112557	, 	//73		113541	, 	//74		114525	, 	//75		115510	, 	//76		116495	, 	//77		117481	, 	//78		118468	, 	//79		119454	, 	//80		120441	, 	//81		121429	, 	//82		122417	, 	//83		123405	, 	//84		124394	, 	//85		125382	, 	//86		126372	, 	//87		127361	, 	//88		128351	, 	//89		129342	, 	//90		130332	, 	//91		131323	, 	//92		132314	, 	//93		133305	, 	//94		134297	, 	//95		135289	, 	//96		136281	, 	//97		137274	, 	//98		138266	, 	//99		139259	, 	//100		140252	, 	//101		141246	, 	//102		142239	, 	//103		143233	, 	//104		144227	, 	//105		145221	, 	//106		146215	, 	//107		147209	, 	//108		148204	, 	//109		149199	, 	//110		150194	, 	//111		151189	, 	//112		152184	, 	//113		153179	, 	//114		154175	, 	//115		155170	, 	//116		156166	, 	//117		157162	, 	//118		158158	, 	//119		159154	, 	//120		160150	, 	//121		161146	, 	//122		162143	, 	//123		163139	, 	//124		164136	, 	//125		165133	, 	//126		166129	, 	//127		167126	, 	//128		168123	, 	//129		169120	, 	//130		170117	, 	//131		171114	, 	//132		172112	, 	//133		173109	, 	//134		174106	, 	//135		175104	, 	//136		176101	, 	//137		17799	, 	//138		17897	, 	//139		17994	, 	//140		18092	, 	//141		18190	, 	//142		18288	, 	//143		18386	, 	//144		18484	, 	//145		18582	, 	//146		18680	, 	//147		18778	, 	//148		18876	, 	//149		18975	, 	//150		190
};

根据温度-ADC值计算表,adc数值的最大值3956,最小值75,此区间以外的数值无效,先剔除:
如果大于数据表最大值,直接返回最小值(int类型最小值: -32768),小于最小值,不处理,直接返回最大值,其他情况再进行逐一比较:

	if( adc > adc_table[0] )				//温度大于最小温度的adc数值,表示超量程,返回最小数值return -32768;else if ( adc < adc_table[190] )		//不处理,直接返回最大值return 32767;else									//循环比较{}

else中比较数据的三种情况,等于,小于和大于:

		for( i=0;i<190;i++)					//数据的三种情况,等于,小于和大于{if( adc == adc_table[i] ){return  i-40;				//换算成温度减40}else if( adc < adc_table[i] ){//不处理,i会++}else{return i-1-40;}}

在demo.c中调用函数Temp_Cal进行测试。删除while中的无用代码,定义变量:int TEMP_VAL;//存放温度数值。
假定adc数据为1500(用于测试):

while(1)		//死循环{delay_ms(2);if( DeviceState != DEVSTATE_CONFIGURED ) 	//continue;if( bUsbOutReady ){usb_OUT_done();TEMP_VAL = Temp_Cal(1500);              //根据adc计算当前温度printf("当前温度:%d\r\n",TEMP_VAL);}if( TIM_10MS_Flag==1 )									//如果10ms到了{TIM_10MS_Flag = 0;									//清空标志位}}

打开adc初始化,屏蔽VREF_VAL:

	ADC_Init();//VREF_VAL = ADC_VrefCal();//adc初始化+电源电压读取

编译,下载,在串口工具中随意发送内容,单片机接收到一个数据信息后,就可以执行if( bUsbOutReady )的内容:
发送任意数据,显示:“当前温度:37”,实现了整数部分的显示。
接下来要把小数部分也显示出来。保留1位小数显示出来,修改:

			else{i = i - 1;temp = adc_table[i] - adc;temp = temp *10 / (adc_table[i]-adc_table[i+1]);temp += (i-40)*10;return temp;}

插值计算示意图:
在这里插入图片描述
如果adc的入口参数是1500,计算返回值为379,重新编译下载,串口工具显示:“当前温度:379”,已正常实现。

3.实战小练

做一个简易温度计
1.能检测当前的温度,保留一位小数;(上节函数已实现)
2.数码管显示当前温度。在demo.c中的 TIM_10MS_Flag代码段中实现。看一下数码管代码中要用到的哪几个。
因为NTC的温度变化比较慢,300-500ms刷新一次即可,定义计数变量int count =0;

			count++;if (count >= 30)                            //每次延时10ms,30次延时300ms{count = 0;//待延时执行代码部分}

修改代码ADC_Read(3)的返回值作为Temp_Cal的入口参数:

		if( TIM_10MS_Flag == 1 )									//如果10ms到了{TIM_10MS_Flag = 0;									//清空标志位count++;if (count >= 30)							//每次延时10ms,30次延时300ms{count = 0;TEMP_VAL = Temp_Cal(ADC_Read(3));              //根据adc计算当前温度,NTC在通道3上SEG0 = TEMP_VAL / 1000 	% 10 ;SEG1 = TEMP_VAL / 100 	% 10 ;SEG2 = TEMP_VAL / 10 	% 10 +10;			//+10,增加小数点位的显示SEG3 = TEMP_VAL / 1  	% 10;}}

P1.3还需要设置为高阻输入,利用stc工具:P1M0 = 0x00; P1M1 = 0x08; //P1.3高阻输入,放在adc初始化之后。
在这里插入图片描述
编译下载,正常显示温度。不同开发板NTC位置可能有区别,对照原理图找一下。

总结

1.学会使用NTC测量温度。
2.举一反三,可以了解别的例如PT100等的电阻测温。
3.ADC章节结束,课外可以尝试别的ADC的传感器。

课后练习

给今天的温度计增加如下功能:
1.增加开关机按键,开机数码管显示—,关机数码管不显示
2 开机之后按下测量键,测量20次数据,间隔50ms测量一次,并计算平均值并显示。
3.测量完成蜂鸣一声,LED(背光灯)点亮三秒后熄灭。
4.30秒不操作自动关机。
最后希望大家课后去看看试验箱程序里的关手ADC的代码,学习和理解下别人好的代码。

相关文章:

学习笔记|ADC|NTC原理|测温程序|STC32G单片机视频开发教程(冲哥)|第十九集:ADC应用之NTC

文章目录 1.NTC的原理开发板上的NTC 2.NTC的测温程序编写3.实战小练总结课后练习 1.NTC的原理 NTC&#xff08;Negative Temperature Coefficient&#xff09;是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌…...

Redisson 集成SpringBoot 详解

一、引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.23.5</version></dependency> redison-spring-boot-starter依赖于与最新版本的spring-boot兼容…...

C# 下载模板文件 Excel

后端代码 [HttpGet("DownloadExcel")]public async Task<dynamic> DownloadExcel(string tmplName){var _fileName "导入表模板.xlsx";var filePath "Files\DownLoad\";var NewFile Path.Combine(filePath, tmplName);var stream new…...

如何做好sop流程图?sop流程图用什么软件做?

5.如何做好sop流程图&#xff1f;sop流程图用什么软件做&#xff1f; 建立标准作业程序sop已经成为企业进步和发展的必经之路&#xff0c;不过&#xff0c;很多刚刚开始着手搭建sop的企业并不知道要如何操作&#xff0c;对于如何做sop流程图、用什么软件做sop流程图等问题充满…...

JAVA编程题-求矩阵螺旋值

螺旋类 package entity; /*** 打印数组螺旋值类*/ public class Spiral { // 数组行private int row; // 数组列private int col; // 行列数private int size; // 当前行索引private int rowIndex; // 当前列索引private int colIndex; // 行开始索引private int rowStart; //…...

Python--入门

标识符 标识符由字母&#xff0c;数字&#xff0c;下划线_组成 第一个字符不能是数字&#xff0c;必须是字母或下划线 标识符区分大小写 关键字 关键字即保留字&#xff0c;定义标识符时不能使用关键字&#xff0c;python中的关键字如下图 注释 python中的单行注释用 # 多行注…...

STM32复习笔记(二):GPIO

目录 &#xff08;一&#xff09;Demo流程 &#xff08;二&#xff09;工程配置 &#xff08;三&#xff09;代码部分 &#xff08;四&#xff09;外部中断&#xff08;EXTI&#xff09; &#xff08;一&#xff09;Demo流程 首先&#xff0c;板子上有4个按键&#xff0c;…...

POJ 3264 Balanced Lineup 线段树 / 平方分割

一、题目大意 给出一个长度为 n&#xff08;n<50000) 数组 arr&#xff0c;进行Q次查询&#xff08;Q<200000&#xff09;&#xff0c;每次查询的内容为数组arr在 [L , R] 的切片的极差&#xff08;最大元素 - 最小元素&#xff09; 二、解题思路 1、线段树 区间极差…...

element-plus自动引入组件报错,例如collapse、loading

element-plus自动引入组件&#xff0c;例如collapse、loading&#xff0c;使用时报错&#xff0c;报错信息如下图所示&#xff1a; 解决办法&#xff1a;vite-config.ts改变vue的引入顺序&#xff0c;将vue放在第一个...

ChainForge:衡量Prompt性能和模型稳健性的GUI工具包

ChainForge是一个用于构建评估逻辑来衡量模型选择&#xff0c;提示模板和执行生成过程的GUI工具包。ChainForge可以安装在本地&#xff0c;也可以从chrome浏览器运行。 ChainForge可以通过聊天节点对多个对话可以使用不同的llm并行运行。可以对聊天消息进行模板化&#xff0c;并…...

队列--二叉树层序遍历

/*1/ \2 3/\ /\4 5 6 7利用LinkedListQueue1. 头 [1] 尾12.头 [2 3] 尾1 23.头 [3 4 5] 尾1 24.头 [4 5 6 7] 尾1 2 35.头 [] 尾1 2 3 4 5 6 7*/ 代码&#xff1a; class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List&l…...

Ceph入门到精通-Linux内核网络参数优化小结

tcp建连优化 1 tcp建连&#xff0c;降低客户端超时时间 net.ipv4.tcp_syn_retries 6 2 tcp建连&#xff0c;服务端避免syn攻击 netstat -s | grep "SYNs to LISTEN" 1192450 SYNs to LISTEN sockets dropped 可以考虑增大syn队列 net.ipv4.tcp_max_syn_backlo…...

AWK语言第二版 2.6个人库 2.7小结

2.6 个人库 Awk提供了适量的内置函数库&#xff0c;如 length、sub、substr、printf 等其他十来个&#xff1b;在A.2.1节的参考手册中都有列出。你可以自己创建更多函数&#xff0c;以便有需要时引入到Awk程序中。比如内置库函数 sub 和 gsub 都只能返回替换的次数&#xff0c…...

8年经验之谈 —— Web ui自动化测试框架总结!

实施过了web系统的UI自动化&#xff0c;回顾梳理下&#xff0c;想到什么写什么&#xff0c;随时补充。 首先&#xff0c;自动化测试不是手动测试的替代品&#xff0c;是比较好的补充&#xff0c;而且不是占大比重的补充。 70%的测试工作集中在底层接口测试和单元测试&#xff0…...

Kafka在企业级应用中的实践

前言 前面说了很多Kafka的性能优点&#xff0c;有些童鞋要说了&#xff0c;这Kafka在企业开发或者企业级应用中要怎么用呢&#xff1f;今天咱们就来简单探究一下。 1、 使用 Kafka 进行消息的异步处理 Kafka 提供了一个可靠的消息传递机制&#xff0c;使得企业能够将不同组件…...

使用企业订货系统后的效果|软件定制开发|APP小程序搭建

使用企业订货系统后的效果|软件定制开发|APP小程序搭建 企业订货系统是一种高效的采购管理系统&#xff0c;它可以帮助企业更好地管理采购流程&#xff0c;降低采购成本&#xff0c;提高采购效率。 可以帮助企业提高销售效率和降低成本的软件工具。使用该系统后&#xff0c;企业…...

STL关联式容器set,multiset,pair,map

set容器是一个集合容器。包含元素是唯一的。集合元素按照一点顺序排列&#xff0c;元素插入过程是顺序插入&#xff0c;所有不能插入指定位置。 set采用红黑树变体的数据结构实现。红黑树属于平衡二叉树。再插入和删除上比vector快。 set不能直接存取元素&#xff08;不能用a…...

MFC文本输出学习

void CTxttstView::OnDraw(CDC* pDC) {CTxttstDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;pDC->SetBkColor(RGB(0,0,0));pDC->TextOut(50, 50, "一段文字");pDC->SetBkColor(RGB(255,255,255))…...

Python 数据分析与挖掘(一)

Python 数据分析与挖掘&#xff08;数据探索&#xff09; 数据探索 1.1 需要掌握的工具&#xff08;库&#xff09; 1.1.1 Nump库 Numpy 提供多维数组对象和各种派生对象&#xff08;类矩阵&#xff09;&#xff0c;利用应用程序接口可以实现大量且繁琐的数据运算。可以构建…...

【问题证明】矩阵方程化为特征值方程求得的特征值为什么是全部特征值?不会丢解吗?

问题 这个问题困扰了我好久&#xff0c;一直感觉如果有其他的特征值没法证伪&#xff0c;不过一直存在思想的层面&#xff0c;没有实际解决&#xff0c;今天突然想到动笔来解决&#xff0c;遂得解&#xff0c;证明如下。 证明 总结 这个证明看似证明过后很直观&#xff0c;但…...

虹科干货 | 不是吧,Redis Enterprise也能当向量数据库来用?

什么是向量相似性搜索啊&#xff1f; 例如&#xff0c;你需要搜索一棵发财树的图片&#xff0c;如果用传统数据库来检索&#xff0c;你大概率会在茫茫树丛中错失心仪的发财树。但是&#xff0c;向量相似性搜索能用向量来表示所有树的特征&#xff0c;这样就能够通过计算向量之间…...

汽车驾驶 - 四梁六柱是什么

汽车的四梁六柱指的是车辆的两个前纵梁&#xff0c;两个后纵梁和ABC柱。虽然不像车辆上的发动机变速箱这些部件出镜率那么高&#xff0c;但这几个部位的重要作用可一点都不含糊。一辆车在碰撞时能够受力起到保护左右的就是四梁六柱&#xff0c;对我们汽车的安全性起到至关重要的…...

CI522 13.56MHZ电动车NFC测试资料

Ci522是一颗工作在13.56MHz频率下的非接触式读写芯片&#xff0c;支持读A卡&#xff08;CI523支持读A/B卡&#xff09;&#xff0c;可做智能门锁、电动车NFC一键启动、玩具NFC开锁等应用。为部分要求低成本&#xff0c;PCB小体积的产品提供了可靠的选择。 Ci522与Si522/MFRC52…...

【微信小程序开发】一文学会使用CSS样式布局与美化

引言 在微信小程序开发中&#xff0c;CSS样式布局和美化是非常重要的一部分&#xff0c;它能够为小程序增添美感&#xff0c;提升用户体验。本文将介绍如何学习使用CSS进行样式布局和美化&#xff0c;同时给出代码示例&#xff0c;帮助开发者更好地掌握这一技巧。 一、CSS样式布…...

漏刻有时物联网环境态势感知大数据(设备列表、动态折线图)

物联网环境下的态势感知是指对物联网环境中的各种要素进行全面、实时、准确的监测、分析和预测,以实现网络态势的全面掌握和安全威胁的及时响应和处理。具体而言,态势感知以物联网环境为基础,利用各类传感器、数据采集设备和其他相关工具,对物联网设备、资产、数据流等进行…...

【力扣】单调栈:901. 股票价格跨度

【力扣】单调栈&#xff1a;901. 股票价格跨度 文章目录 【力扣】单调栈&#xff1a;901. 股票价格跨度1. 题目介绍2. 思路3. 解题代码参考 1. 题目介绍 设计一个算法收集某些股票的每日报价&#xff0c;并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格…...

4_使用预训练模型 微调训练CIFAR10

使用预训练模型 微调训练CIFAR10 1. VGG 准备工作import torch from torch import nn import torchvision from torchvision import models from torchvision import datasets, transforms from datetime import datetime from tqdm import tqdm from torchsummary import sum…...

机器学习笔记(一)

1.线性回归模型 2. 损失函数 3.梯度下降算法 多元特征的线性回归 当有多个影响因素的时候,公式可以改写为: 当有多个影响因素的时候为了方便计算,可以使用 Numpy下面的点积方法, np.dot(w,x) 最后再加个b 就省略了很多书写步骤,这叫做矢量化 多元回归的梯度下降 左边是一…...

学习在原地打转的原因与解决 如何步步为营 一日千里快速进步 考研工程计算 1万小时=416.666666667 天

学习在原地打转的原因可能有很多。以下是一些常见的原因&#xff1a; 缺乏明确的目标&#xff1a;如果没有明确的学习目标&#xff0c;人们往往会感到迷失和困惑。没有一个明确的方向&#xff0c;就很难做出有针对性的努力&#xff0c;从而导致学习进展缓慢。 学习方法不当&a…...

194、SpringBoot --- 下载和安装 Erlang 、 RabbitMQ

本节要点&#xff1a; 一些命令&#xff1a; 小黑窗输入&#xff1a; rabbitmq-plugins enable rabbitmq_management 启动控制台插件 rabbitmq-server 启动rabbitMQ服务器 管理员启动小黑窗&#xff1a; rabbitmq-service install 添加rabbitMQ为本地服务 启动浏览器访问 htt…...

深圳网站制作公司嘉兴/网络营销的主要手段和策略

...

怎样用阿里云服务器做网站/手机网址大全123客户端下载

1. export PKG_CONFIG_PATH$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/ 2. pkg-config --cflags --libs opencv...

网站备案 上一级服务商名称/网站整站优化公司

我一直都有看网络电视的习惯&#xff0c;不用跟别人抢电视摇控噐&#xff0c;呵呵。所以用LINUX系统后就好想找一个好的网络电视软件&#xff0c;网上都说gmlive和qsopcast是最好的&#xff0c;因为这几天都在找安装包&#xff0c;在官网论坛上有gmlive的rpm包下载安装&#xf…...

做灯具外贸哪个网站好做/海外独立站

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 项目介绍 酒店管理系统共分为三个角色&#xff0c;客房经理、前台管理员、客户&#xff0c;各个角色的权限各不相同&#xff1b; 客房经理功能包括&#xff1a;登录、注册、前台用户管理、客房管理、优…...

小程序推广网站/百度网络推广怎么收费

中石油校内的比赛&#xff0c;只能后续补题了&#xff0c;题目来说还是比较的不错 A 数方格&#xff08;思维&#xff09; 规定了都是正方形&#xff0c;那么枚举就可以一行的按照规律也好枚举列数也好枚举 代码 #include <bits/stdc.h> using namespace std; int main()…...

徐州鸿美网站建设/网站分析案例

说实话&#xff0c;还真有点紧张 毕竟刚毕业一年吗&#xff0c;上一家公司 主要是入门&#xff0c;而且是行业软件。然而这家公司有些不同&#xff0c;电子商务&#xff0c;互联网转载于:https://www.cnblogs.com/haihang/p/3498753.html...