libX11的一个支持包,具体用法见《交叉编译libX11》http://write.blog.csdn.net/postedit/42028985
2025/12/22 6:26:20 283KB xproto
1
#include#defineucharunsignedchar#defineuintunsignedintsbitled=P2^5;sbitwei=P2^7;sbitduan=P2^6;sbitDQ=P2^2;ucharmazhi_duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};ucharmazhi_wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff};voiddelayl(uintn){uinti,j;for(i=n;i>0;i--)for(j=114;j>0;j--);}voiddelays(uchari){while(i--);}bitinit_DS18B20()//DS8B20初始化{bitx;DQ=1;//DQ复位delays(8);DQ=0;//单片机将DQ拉低delays(75);DQ=1;//拉高总线delays(15);x=DQ;//延时过后若x=0则初始化成功若x=1则初始化失败delays(5);returnx;}voidwrite_data(uchardat){uchari,temp;temp=dat;DQ=1;for(i=0;i>=1;}}ucharread_data(){uchari,dat;DQ=1;for(i=0;i>=1;DQ=1;//配置为输入if(DQ)dat|=0x80;delays(4);}returndat;}uintreadtemp(){uchartemph,templ;uinttemp;floatwendu;init_DS18B20();write_data(0xcc);//跳过ROMwrite_data(0x44);//启动温度转换//delayl(100);init_DS18B20();write_data(0xcc);//跳过ROMwrite_data(0xBE);//读温度//以下读温度,低八位在前//高8位在后templ=read_data();temph=read_data();temp=(temph<<8)|templ;wendu=temp*0.625+0.5;//温度扩大10倍,四舍五入temp=wendu;//10倍温度returntemp;}voidSTC_init(){P1=0x00;//关闭ledled=0;//锁存wei=0;duan=0;}voiddisplay(ucharweil,ucharduanl,bitdp){wei=1;P0=mazhi_wei[weil-1];wei=0;duan=1;if(dp==1)P0=(mazhi_duan[duanl]|0x80);elseP0=mazhi_duan[duanl];duan=0;}voidmain(){uchari;uintwendu;STC_init();wendu=readtemp();delayl(500);wendu=readtemp();delayl(500);while(1){wendu=readtemp();for(i=0;i<80;i++){display(1,wendu/100,0);delayl(3);display(2,wendu0/10,1);delayl(3);display(3,wendu,0);delayl(3);}}}
2025/12/13 3:17:02 2KB 温度传感
1
在IT领域,尤其是在嵌入式开发、物联网应用或者设备控制等方面,串口通信是一个非常重要的技术。
Qt作为一个跨平台的应用程序开发框架,提供了方便的API用于实现串口读写功能,使得开发者能够在Windows等操作系统上进行相关的编程工作。
本文将详细讲解如何在Qt环境下进行Windows下的串口读写操作。
我们要了解串口通信的基本概念。
串口通信,也称为串行通信,是通过串行数据传输的方式进行设备间的通信。
在Windows系统中,串口通常以COM1、COM2等命名,可以通过波特率、数据位、停止位、校验位等参数进行配置。
在Qt中,串口操作主要依赖于`QSerialPort`类。
`QSerialPort`提供了丰富的成员函数来设置和管理串口,如打开、关闭串口,设置波特率、数据位、停止位、校验位,以及读取和写入数据。
1.**初始化串口**:你需要创建一个`QSerialPort`对象,并指定要使用的串口号。
例如:```cppQSerialPortserial("COM1");```2.**配置串口参数**:接下来,我们需要设置串口的各项参数。
比如,设置波特率为9600,数据位为8,停止位为1,校验位为无校验:```cppserial.setBaudRate(QSerialPort::Baud9600);serial.setDataBits(QSerialPort::Data8);serial.setStopBits(QSerialPort::OneStop);serial.setParity(QSerialPort::NoParity);```3.**打开串口**:确保设置好参数后,可以尝试打开串口:```cppif(!serial.open(QIODevice::ReadWrite)){qDebug()<<"无法打开串口:"<<serial.errorString();return;}```4.**读取数据**:`QSerialPort`提供了`readAll()`函数来读取所有可用的数据,或者使用`read()`函数指定要读取的字节数。
例如:```cppQByteArraydata=serial.readAll();```5.**写入数据**:使用`write()`函数向串口写入数据:```cppQStringmessage="Hello,World!";serial.write(message.toUtf8());```6.**事件驱动**:如果需要持续监听串口数据,可以使用信号和槽机制。
例如,连接`readyRead`信号到相应的处理函数:```cppconnect(&serial,&QSerialPort::readyRead,this,&YourClass::onReadyRead);```7.**关闭串口**:当不再需要使用串口时,记得关闭它:```cppserial.close();```在提供的“Qtwindows下串口读写”示例工程中,可能包含了以上所述的串口操作代码,以及一些错误处理和用户交互的逻辑。
初学者可以通过分析和运行这个示例,更深入地理解Qt在Windows下的串口读写操作。
在实际应用中,可能还需要考虑到线程安全、异常处理、多串口管理等问题,这都需要根据具体需求进行扩展和优化。
Qt的`QSerialPort`类为开发者提供了一种简单易用的方式来实现Windows下的串口通信,通过学习和实践,你可以快速掌握这一技能,为你的项目添加强大的硬件交互能力。
2025/11/30 15:42:27 5KB Windows 串口 demo
1
以时间程序为例介绍了linux下C网络编程的TCP/UDP,服务器端/客户端的基本用法,socket,inet-ptoh,hton,bind,listen,acceept,connect,read,write,快速入门,超实用
2025/11/22 4:04:07 17KB linux C 网络编程
1
无组件ASP文件上传源代码记得在建立一个文件夹"updata"saveannounce_upload.asp上传页------------------------------------body{font-size:9pt;}input{font-size:9pt;}文件上传文件------------------------------------saveannouce_upfile.asp保存文件到服务器------------------------------------文件上传500*1000then'设置上传文件大小为500Kresponse.write"文件大小超过了限制500K [重新上传]"response.endendififfile.FileSize>0then''如果FileSize>0说明有文件数据file.SaveAsServer.mappath("updata\"&file.FileName)''保存文件endifsetfile=nothingnextsetupload=nothingresponse.write"文件上传成功[继续上传]"%>------------------------------------upload.inc建立upload对象------------------------------------dimupfile_5xSoft_StreamClassupload_5xSoftdimForm,File,VersionPrivateSubClass_InitializedimiStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFiledimstrDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStrVersion=""ifRequest.TotalBytes<1thenExit
2025/10/5 16:27:28 2KB 无组件ASP文件上传源代码
1
第04章基于Hough变化的答题卡识别——相关代码及源文件\Analysis.m\Compute_Angle.m\Gray_Convert.m\Hough_Process.m\images\......\1.JPG\Image_Binary.m\Image_Normalize.m\Image_Rotate.m\Image_Smooth.m\Location_Label.m\Morph_Process.m\Region_Segmation.m\results\runme.m\Write_Results.m
2025/10/3 12:24:27 5.19MB Hough变化; 答题卡识别
1
Nachos实验(操作系统课程设计)共四个实验,每个实验是单独分离开,有代码,有详细文档。
实验1#内核线程调度策略设计设计了两个静态(FCFS,静态优先数),两个动态(动态优先数,彩票算法)。
实验2#进程同步设计一个Haro样式的条件变量,通过实现采用该条件变量的生产者消费者问题管程和哲学家问题管程,用多个使用管程的协作线程验证其正确性。
实验3#用户进程和空间管理设计实现了多道程序共驻内存,用户程序并发执行,实现了多个系统调用(Fork,Exec,Join,Exit,Wait,Halt,Create,Open,Read,Write,Close,Yield,,实现了一个简单的shell程序,并实现了shell上的用户程序的并发,输出重定向功能。
本实验中采用了进程同步的功能。
实现了进程表,使用父子进程关系表实现父子进程关系。
实验4#文件系统扩展设计使Nachos文件的长度可以扩展。
扩充Nachos文件的最大容量。
2025/9/20 9:34:58 2.13MB Nachos实验 操作系统课程设计
1
爬取指定标签List下评分8.5分以上的图书信息,包括书名、作者、评分、简介,并保存到excel,以标签分类,放到不同的sheet中。
核心代码:title=book.find_element_by_xpath('.//a[1]').text#获取书名zuozhe=book.find_element_by_xpath('.//div[1]').text.split('/',1)[0]jianjie=book.find_element_by_xpath('.//p[1]').text#获取简介worksheet.write(i,0,fenshu);#分数写入第i行的第一列worksheet.write(i,1,title);#书名写入第i行的第二列worksheet.write(i,2,zuozhe);#作者写入第i行的第三列worksheet.write(i,3,jianjie);#简介写入第i行的第四列
2025/9/2 5:16:26 3KB 豆瓣爬虫 Python selenium
1
Streamlit是一款基于Python的数据可视化和应用开发框架,它允许数据科学家和工程师快速创建交互式的、美观的应用程序,无需深入学习前端技术。
这个“streamlit-example”项目是一个学习和实践Streamlit的好例子,让我们来深入探讨一下Streamlit的核心特性和如何使用它。
Streamlit的工作原理是通过读取Python脚本来构建应用程序的界面。
在你的项目中,`streamlit-example-main`很可能包含了运行Streamlit应用的主文件。
通常,这个文件会有一个或多个`streamlit.write()`函数,用于输出各种类型的数据显示。
1.**安装与启动**:-安装Streamlit库:在命令行或终端中运行`pipinstallstreamlit`。
-运行应用:找到`streamlit-example-main`中的主Python文件(如`app.py`),然后运行`streamlitrunapp.py`。
这将在本地启动一个Web服务器,你可以通过浏览器访问应用程序。
2.**核心组件**:-`streamlit.write()`:这个函数是Streamlit的基础,它可以输出文本、HTML、图像、图表等。
-`streamlit.pyplot()`:用于展示matplotlib生成的图表。
-`streamlit.plotly()`:支持Plotly库的交互式图表。
-`streamlit.altair()`:显示Altair库的静态或交互式图表。
-`streamlit.dataframe()`:直接展示PandasDataFrame。
-`@streamlit.component`:创建自定义的UI组件。
3.**数据交互**:-Streamlit支持用户输入,例如`streamlit.text_input()`和`streamlit.number_input()`,可以创建文本框和数字输入框。
-使用`streamlit.checkbox()`和`streamlit.radio()`让用户选择选项。
-`streamlit.selectbox()`允许用户从下拉菜单中选择。
4.**状态管理**:-Streamlit的`st.cache()`装饰器可以缓存函数结果,提高性能。
-`st.session_state`用于在页面刷新时保持用户的状态。
5.**布局控制**:-使用`streamlit.column()`和`streamlit.row()`可以控制页面的布局。
-`st.beta_container()`提供更灵活的布局选项,比如网格系统。
6.**部署**:-Streamlit提供了一键部署到免费的StreamlitSharing服务,只需运行`streamlitshare`命令。
-也可以将应用部署到Heroku、GoogleCloud或AWS等云平台。
7.**社区和扩展**:-Streamlit有活跃的社区,用户可以分享代码和应用,找到很多有用的示例。
-通过社区创建的库(如streamlit-aggrid、streamlit-dashboards等)可以增强Streamlit的功能。
通过这个`streamlit-example`项目,你可以学习如何使用这些组件和功能,逐步创建自己的数据可视化解析或应用。
记得探索源代码,理解每个部分的作用,这将帮助你更好地掌握Streamlit的使用技巧。
在实践中不断迭代,你会发现Streamlit是一个强大且易用的工具,能帮助你快速将数据分析转化为引人入胜的交互式应用。
2025/8/27 11:43:49 41.74MB Python
1
Algnhsaalgnhsa是一个AWSLambdaGonet/http服务器适配器。
algnhsa允许在AWSLambda和APIGateway或ALB上运行GoWeb应用程序,而无需更改现有的HTTP处理程序:packagemainimport("fmt""net/http""strconv""github.com/akrylysov/algnhsa")funcindexHandler(whttp.ResponseWriter,r*http.Request){w.Write([
2025/7/1 22:14:52 15KB go aws lambda aws-lambda
1
共 98 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡