STM32串口通信USART1(printf+USER_printf
2024/6/7 16:21:36 965KB STM32串口
1
用来压缩和解压的,以下是部分函数:intcompress(Bytef*dest,uLongf*destLen,constBytef*source,uLongsourceLen);intcompress2(Bytef*dest,uLongf*destLen,constBytef*source,uLongsourceLen,intlevel);intuncompress(Bytef*dest,uLongf*destLen,constBytef*source,uLongsourceLen);typedefvoidpgzFile;gzFilegzopen(constchar*path,constchar*mode);gzFilegzdopen(intfd,constchar*mode);intgzsetparams(gzFilefile,intlevel,intstrategy);intgzread(gzFilefile,voidpbuf,unsignedlen);intgzwrite(gzFilefile,constvoidpbuf,unsignedlen);intVAgzprintf(gzFilefile,constchar*format,...);intgzputs(gzFilefile,constchar*s);char*gzgets(gzFilefile,char*buf,intlen);intgzputc(gzFilefile,intc);intgzgetc(gzFilefile);intgzflush(gzFilefile,intflush);z_off_tgzseek(gzFilefile,z_off_toffset,intwhence);z_off_tgztell(gzFilefile);intgzrewind(gzFilefile);intgzeof(gzFilefile);intgzclose(gzFilefile);constchar*gzerror(gzFilefile,int*errnum);
2024/5/19 1:06:11 79KB zlib123-dll.zip
1
本程序使用可以让多个串口使用Printf(),本程序中使用的是串口1和串口3
2024/5/14 0:09:44 2KB STM32 Printf
1
**函数名:ESP8266_BuildAP*描述:WF-ESP8266模块创建WiFi热点*输入:pSSID,WiFi名称字符串*:pPassWord,WiFi密码字符串*:enunPsdMode,WiFi加密方式代号字符串*返回:1,创建成功*0,创建失败*调用:被外部调用*/boolESP8266_BuildAP(char*pSSID,char*pPassWord,ENUM_AP_PsdMode_TypeDefenunPsdMode){charcCmd[120];sprintf(cCmd,"AT+CWSAP=\"%s\",\"%s\",1,%d",pSSID,pPassWord,enunPsdMode);returnESP8266_Cmd(cCmd,"OK",0,1000);}
2024/5/5 2:25:19 5.48MB ESP8266 APP 物联网
1
通过IO模拟I2C总线,控制DS1337芯片,包括以下功能:(1)DS1337_RTC_Init,DS1337初始化,初始化I2C的IO(2)Print_RTC_Time,读取RTC时间信息,通过很小资源的S_Printf函数打印到串口。
“2013年11月15日,23:29:41,星期五”为实际打印效果拷贝(3)DS1337_Write,用于修改DS1337的寄存器(4)DS1337_RTC_Time[7]数组存储最新的RTC时间,格式在源程序中有详细注释,很方便
2024/4/23 14:08:23 2KB DS1337 MSP430
1
非线性最小二乘法C语言代码main(){intn,i,flag2;charflag1='y';floatar[50],br[50],x,y,xe,ye,xye,xxe,sx,sy,sxy,sxx,a,b;printf("\n欢迎使用最小二乘法数据处理程序\n");
2024/4/17 4:44:04 1KB 非线性最小二乘法 C语言代码
1
单片机中通过串口每10秒printf1个温度值,波特率115200。
先连上串口,然后打开Qt上位机,上位机中com号自动获取,默认波特率115200,点击“打开串口”,在线程中自动绘制温度曲线,10更新一次,温度曲线自动往左移动。
自动保存温度值及对应时间到txt文件中。
可对记录文件清空操作,当必须在点击“打开串口“才可生效。
2024/3/31 9:58:52 6KB Qt
1
数据结构,农夫过河。
详细讲述过河#include//0代表在河的这边;1代表在河的对岸structCondition{intfarmer;intwolf;intsheep;intcabbage;};structConditionconditions[100];//结构体条件数组char*action[100];voidtakeWolfOver(inti)//把狼来过去{action[i]="把狼过去.---_-对岸";conditions[i+1].wolf=1;conditions[i+1].sheep=conditions[i].sheep;conditions[i+1].cabbage=conditions[i].cabbage;}voidtakeWolfBack(inti)/*把狼带回来*/{action[i]="带狼回来.本岸对岸";conditions[i+1].wolf=conditions[i].wolf;conditions[i+1].sheep=1;conditions[i+1].cabbage=conditions[i].cabbage;}voidtakeSheepBack(inti)/*把羊带回来*/{action[i]="带羊回来.本岸对岸";conditions[i+1].wolf=conditions[i].wolf;conditions[i+1].sheep=conditions[i].sheep;conditions[i+1].cabbage=1;}voidtakeCabbageBack(inti)/*把菜带回来*/{action[i]="带菜回来.本岸对岸";conditions[i+1].wolf=conditions[i].wolf;conditions[i+1].sheep=conditions[i].sheep;conditions[i+1].cabbage=conditions[i].cabbage;/*全不动*/}voidgetBackBarely(inti)/*返回时的情况*/{action[i]="空手回来.本岸<---(barely)";conditions[i+1].wolf=conditions[i].wolf;conditions[i+1].sheep=conditions[i].sheep;conditions[i+1].cabbage=conditions[i].cabbage;}voidshowSolution(inti)/*显示解决方法*/{intc;printf("\n");printf("%s\n","解决办法:");for(c=0;c<i;c++){printf("step%d:%s\n",c+1,action[c
2024/2/6 8:04:03 4KB 农夫过河
1
stm32多串口同时工作的工程,现在已经调通串口123能同时工作互不干扰,传输使用了DMA基于原子的例程修改,感谢原作者提供的例程printf函数直接发送数据三个串口都能使用
2024/1/24 8:58:21 3.45MB stm32 多串口 DMA
1
【员工管理系统】问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。
系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
基本要求:排序:按不同关键字,对所有员工的信息进行排序;
查询:按特定条件查找员工;
更新,按编号对某个员工的某项信息进行修改;
插入,加入新员工的信息;
删除,按编号删除已离职的员工的信息。
选作内容:实现图形用户界面。
通过链表实现数据结构:#include#include#include#include#includeusingnamespacestd;typedefstructworkers{charname[15];//姓名chardepartment[18];//单位chargender;//性别unsignedintage;//年龄unsignedlonglongtelephone;//电话unsignedlongwage;//工资unsignedlongnum;//职工号structworkers*next;}*Linklist,Lnode;voidfrist_print(){printf("\t\t⊙▽⊙⊙▽⊙⊙▽⊙⊙▽⊙⊙▽⊙⊙▽⊙\n\n");printf("\t\t\t欢迎进入员工管理系统\n");}voidmenu(){printf("\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\t\t\t◎1.创建员工信息\t\n");printf("\t\t\t◎2.插入员工信息\t\n");printf("\t\t\t◎3.修改员工信息\t\n");printf("\t\t\t◎4.删除员工信息\t\n");printf("\t\t\t◎5.查询员工信息\t\n");printf("\t\t\t◎6.员工信息排序\t\n");printf("\t\t\t◎7.显示员工信息\t\n");printf("\t\t\t◎8.员工工资情况\t\n");printf("\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("注意:输入均以回车作为结束\n");printf("pleasechoise1--8:\t");//putchar(12);}voidInset(LinklistHead){Linklists,L;unsignedintagee;unsignedlongwagee,numm;
2024/1/12 15:07:32 12KB ss
1
共 67 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡