- 博客(47)
- 问答 (1)
- 收藏
- 关注
原创 stm32上实现点灯
<font文章目录前言一、二、使用步骤1.引入库2.读入数据总结前言在ALIENTEK 探索者 STM32F4 开发板上有两个LED灯,我们初次接触这款单片机,可以通过调库来实现跑马灯(即一个LED灯亮,一个LED灯灭,过段时间再反过来)一、二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport wa
2021-03-20 16:51:06
2353
2
原创 STM32F4开发板硬件平台简介
文章目录前言一、ALIENTEK 探索者 STM32F4 开发板资源初探1.开发板资源图2.ALIENTEK 探索者 STM32F4 开发板板载资源汇总3.ALIENTEK 探索者 STM32F4 开发板的特点二、ALIENTEK 探索者 STM32F4 开发板资源说明1.硬件资源说明总结前言实践出真知,要想学好 STM32F4,实验平台必不可少!这篇博文将详细介绍一个用来学习STM32F4 的硬件平台:ALIENTEK 探索者 STM32F4 开发板,通过该篇的介绍,你将了解到ALIENTEK ..
2021-03-20 10:44:41
4627
1
原创 spi协议介绍
文章目录前言一、SPI介绍1.SPI总线2.寻址方式二、通信原理1.通信过程2.极性和相位3.四种工作模式三、SPI与I2C的异同1.相同点2.不同点总结前言spi协议和I2C协议是非常类似的,两种硬件接口协议在芯片是被广泛使用的,上篇博文详细介绍了I2C协议,这次来介绍一下spi协议。一、SPI介绍1.SPI总线SPI(Serial PEripheral Interface)是串行外设接口的缩写,SPI是一种高速的、全双工的、同步的串行通信总线:SPI采用主从方式工作、一般有一个主设备..
2021-02-27 22:38:08
1472
原创 I2C总线协议介绍
文章目录前言一、I2C简介二、I2C通信过程1.总线通信过程描述2.I2C总线寻址方式三、I2C通信过程的中一些概念的理解1.起始信号与停止信号2.字节传送与应答3.同步信号四、典型I2C时序1.主机向从机发送数据2.从机向主机发送数据3.主机先向从机发送数据,然后从机再向主机发送数据总结前言上篇博文介绍了Uart通信协议(即串口通信),这次我们来介绍一下I2C总线协议一、I2C简介I2C 是很常见的一种总线协议,I2C 是 NXP 公司设计的,I2C 使用两条线在主控制器和从机之间进行数据通..
2021-02-18 21:17:39
399
原创 Uart协议介绍
文章目录前言一、Uart协议(即串口)的基本概念二、Uart配置基本属性1.波特率2.起始位3.数据位4.奇偶校验位5.停止位6.空闲位7.传输方向总结前言通用的硬件接口协议很多,我们通过几篇博文来一一介绍,今天要来了解的是Uart协议,即我们通常所说的串口通信。一、Uart协议(即串口)的基本概念UART全称为Universal Asynchronous Receiver/Transmitter,即通用异步收发器,是串行通信一种通信技术,常用于单片机和电脑之间以及单片机和单片机之间的板级通信。串
2021-02-08 15:44:32
3286
2
原创 树莓派3b调mjpg-streamer库实现监控功能
文章目录前言一、准备工作1.需要的模块和单片机2.下载需要的库3.下载实现监控的主体库二、编译并运行程序1.编译库2.启动软件总结前言今天来介绍一下树莓派外接摄像头之后怎么通过调库的方式来实现监控功能。一、准备工作1.需要的模块和单片机今天我们需要的是树莓派3b和一个摄像头,将其连接好是这样的然后我们将利用SSH方式,登录上树莓派这样我们就完成了准备工作2.下载需要的库依次输入以下命令sudo apt-get install libjpeg8-dev (JPEG支持库)s..
2021-01-24 15:33:44
273
原创 socket,tcp,http三者之间的区别及其原理
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言socket,tcp,http三者有一些有联系的地方,但相互之间的差异也是挺大的,今天来介绍下这三者的原理与区别。一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltim..
2021-01-18 18:18:12
654
原创 有名管道和无名管道的介绍
文章目录前言一、无名管道1.概念介绍2.相关函数介绍3.关于无名管道的一些说明4.无名管道编程实战二、有名管道1.概念2.编程实战总结前言在进程间通信的几种方式中,管道可谓是最简单的了,今天我们就来介绍一下两种管道的用法。一、无名管道1.概念介绍无名管道和有名管道是Linux系统内核的特殊文件,用于进程之间的通信。无名管道相当于一个队列结构,fd[1]为写入端(入队),fd[0]为读出端(出队)。其中信息读出后即删除,再次读取时即为下一个信息。2.相关函数介绍函数形式:int pipe..
2021-01-07 13:15:44
1788
原创 安卓开发环境的搭建(eclipse的安装)
文章目录前言一、eclipse的搭建1.安装包的下载二、第一个工程的建立以及实现hello world1.新建工程2.编程实现Hello World总结前言目前在嵌入式领域中,安卓系统的应用占比越来越大,因而要想适应未来嵌入式的发展,我们要学会安卓app的开发,今天就来介绍下安卓开发环境是怎么搭建的一、eclipse的搭建1.安装包的下载百度网盘压缩包下载地址(提取码是1111)在百度云下载好压缩包之后,进行解压解压之后,会得到这样一个文件夹这是免安装版的,用起来非常方便,按照箭头..
2020-12-29 12:54:38
534
原创 多线程控制(条件变量和互斥量)
文章目录前言一、互斥量控制多线程1.互斥量的介绍2.相关api的介绍3.编程实战二、条件变量控制线程1.条件变量介绍2.相关api的介绍3.代码编程实战总结前言在多线程中,如果我们不对其进行管理的话,那么各个线程容易陷入混乱状态,从而不能得到我们想要的结果,今天就来介绍两种多线程的管理方式一、互斥量控制多线程1.互斥量的介绍互斥量(mutex)从本质上来说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁后,任何其他试图再次对互斥量加锁的线程将会被阻塞..
2020-12-25 12:45:49
682
原创 线程与进程的优劣对比
文章目录前言一、线程与进程的对比1.两者的优劣对比2.使用多线程的理由二、线程编程实战1.相关api的介绍2.初级实战代码13.初级实战代码2总结前言线程与进程在liunx系统编程中都是非常重要的一部分,并且两者有很多相似的地方,也有许多不同的地方,今天我们来比较一下两者,并做一下线程编程实战一、线程与进程的对比1.两者的优劣对比UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各..
2020-12-24 12:44:37
1282
原创 socket网络编程相关概念以及服务端客户端的搭建
文章目录前言一、socket网络编程介绍1.什么是socket2.相关api的介绍3.socket服务端的创建步骤4.socket客户端的创建步骤二、服务端与客户端的实现1.服务端的实现2.客户端的实现三、实现两个端口的通信(类似于qq聊天)1.程序的编译2.运行服务端和客服端总结前言socket网络编程实liunx系统编程中非常重要的一部分,我们知道,在本地的进程间通信有很多种,但这些通信方式都只是建立在本地服务器的基础之上的,当我们是在两个不同的端口处时,这个时候,进程间通信的方式就没有用了,..
2020-12-23 17:10:55
701
原创 Qt中资源文件的添加与使用
提示:文章目录前言一、ui实现菜单栏,工具栏,状态栏1.创建工程2.菜单栏的建立3.工具栏的建立4.铆接部件的引入5.中心控件的添加6.实际运行效果二、ui资源控件的添加1.添加资源文件2.资源文件的使用总结前言上篇博文用代码的方式实现了工具栏,菜单栏,以及状态栏,这次来介绍下怎么利用ui来实现这些东西,并完成在ui中添加资源文件一、ui实现菜单栏,工具栏,状态栏1.创建工程创建工程其他步骤和以前差不多,不过这次我们要引入界面,在创建工程时,将下方图片箭头处勾选即可然后我们来到建好的工程
2020-12-15 17:44:11
858
原创 Qt菜单栏工具栏状态栏的实现
文章目录前言一、建立菜单栏1.新建工程2.菜单栏的初步实现3.创建菜单项和添加分割线二、工具栏的实现1.工具栏的初步实现2.设置工具栏中的内容以及控件3.工具栏的一些限制命令三、状态栏的实现1.状态栏的初步设置2.设置标签控件3.设置铆接部件4.固定铆接部件停靠区域5.添加中心控件总结前言在前面学习Qt的时候,我完成了关于界面按钮的创建,以及信号与槽的实际应用,这次来自己用代码实现在一个窗口中建立菜单栏,工具栏以及状态栏一、建立菜单栏1.新建工程按照箭头所指来操作这里名字随便取这..
2020-12-14 00:42:32
1534
原创 SecureCRT的下载与使用
文章目录前言一、SecureCRT的下载1.下载链接2.解压压缩包二、SecureCRT的使用1.SSH登录的相关配置与登录2.界面的更改总结前言对于一些自带系统的芯片和板子来说,我们经常需要SSH登录来连接板子,然后我们才能在上面编译和运行程序,今天就来介绍一个好用的终端连接软件。一、SecureCRT的下载1.下载链接SecureCRT压缩包百度云下载链接(提取码是1111)博主上传的是压缩包,大家下载后就会有这个ZIP文件2.解压压缩包首先将文件解压然后得到这样一个文件夹,..
2020-12-11 20:53:09
1321
原创 stm32入门之keil5的安装以及第一个工程的建立
文章目录前言一、keil5的下载与安装1.下载相关链接二、使用步骤1.引入库2.读入数据总结前言要想学习stm32,首先我们就要学会怎么样去安装keil5,以及搭建基本编程环境一、keil5的下载与安装1.下载相关链接二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarning..
2020-12-06 17:08:30
2267
原创 Qt信号与槽的应用
文章目录前言一、信号与槽同按钮结合起来1.信号发送流程:2.信号与槽函数的常用接口:3.实现点击按钮关闭窗口二、自定义信号与槽1.2.读入数据总结前言信号与槽是Qt中非常重要的两个概念,这篇博文来介绍下这两个东西,并做一下简单的应用一、信号与槽同按钮结合起来1.信号发送流程:当我们在界面创建按钮后,点击它,想要让它起到一定的作用,这个时候我们就需要用到信号与槽来处理,让我们看看这个流程所需要的东西有哪些。如果用信号来表示这些步骤,首先发送信号的api是connect( 信号的发送者, 发..
2020-12-04 13:09:42
637
原创 Qt帮助文档的寻找以及环境变量的配置
文章目录前言一、Qt帮助文档的位置二、使用步骤1.引入库2.读入数据总结前言上篇博文实现界面中添加按钮后,发现它并没有起到什么作用,今天来介绍一下通过信号与槽的使用来使得我们添加的按钮能够起到一些用处一、Qt帮助文档的位置在平时我们需要查看帮助文档时,我们可以把鼠标放在需要查询的字段上按F1或者直接去帮助文档中查询,这样是有一定的缺陷的,当我们在编写代码时,这样去查询,会有点不方便二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas ..
2020-12-02 21:05:45
3653
原创 Qt界面按钮的建立
文章目录前言一、Qt.pro文件内代码的解读二、Qt一些快捷键的介绍三、按钮的创建总结前言上篇博文建立第一个窗口之后,今天来实现窗口上按钮的创建一、Qt.pro文件内代码的解读在创建按钮之前,我们先了解下Qt.pro文件中代码所代表的的意思,这些东西是我们学习Qt所需要的了解的东西QT += core gui//这是Qt所包含的模块greaterThan(QT_MAJOR_VERSION, 4): QT += widgets//这行代码是指大于4.0版本的Qt都包含widg..
2020-12-02 10:32:31
1305
原创 第一个Qt程序的创建
文章目录前言一、QtCreator简介1.欢迎界面的介绍2.编辑界面3.设计4.Debug5.项目6.帮助二、Qt程序的创建与编写1.创建工程2.实现第一个Qt程序总结前言上一篇博文介绍了学习Qt的意义以及Qt平台的搭建,这一次我们来实现自己的第一个Qt小程序(博主也是刚开始学习Qt)一、QtCreator简介首先我们打开QtCreator软件来到这个界面1.欢迎界面的介绍① Projects:它主要的功能就是创建新项目,为我们写代码做准备,点击这个+New,或者点击文件里的新建,这..
2020-12-01 13:35:34
535
1
原创 学习QT的意义以及QT平台的安装
文章目录前言一、为什么要学习QT1.学习Qt的意义2.Qt的一些应用案例二、Qt软件的安装1.Qt的下载2.具体安装环节总结前言Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Company科技被..
2020-11-30 21:38:14
1933
原创 Sublime Text 3的下载与使用
文章目录前言一、Sublime Text 3的下载与安装二、代码高亮的相关配置总结前言对于编程人士来说,一个好用的编辑器至关重要,因为它不仅能让我们用的舒服,还能提高我们编程的效率,今天就能介绍一款非常好用的代码编写软件Sublime Text 3的下载安装以及中文的设置一、Sublime Text 3的下载与安装添加链接描述这是百度网盘链接哦,提取码就在下方。提取码:1111下载之后就可以直接安装了,不用解压缩。然后我们来看看安装过程:选择一个安装位置,不放在c盘就可以了这样..
2020-11-30 15:11:02
907
原创 消息队列概念及相关api的使用
文章目录前言一、消息队列的概念以及相关api的介绍1.概念:2.相关api的介绍:二、简单编程实战1.发送端2.接收端3.实际运行效果总结前言今天来介绍进程间通信中的消息队列一、消息队列的概念以及相关api的介绍1.概念:消息队列,Unix的通信机制之一,可以理解为是一个存放消息(数据)容器。将消息写入消息队列,然后再从消息队列中取消息,一般来说是先进先出的顺序。可以解决两个进程的读写速度不同(处理数据速度不同),系统耦合等问题,而且消息队列里的消息哪怕进程崩溃了也不会消失。最简单的消息内..
2020-11-26 13:33:04
769
原创 共享内存及其简单应用
文章目录前言一、消息队列概念以及相关api的介绍1.概念:2.相关api:二、编程实战1.写入端2.读取端总结前言在进程间的通信中,消息队列可以说是一个很重要的一种方式了,它是全双工的,因而能够起到很多作用,下面我们就来具体看看消息队列相关api的使用以及其编程实战。一、消息队列概念以及相关api的介绍1.概念:共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Ca..
2020-11-25 20:46:07
572
原创 进程之fork函数的用法
文章目录前言一、父子进程号的差别二、fork函数的返回值总结前言在liunx进程中,fork()函数是非常重要的,它是进程的缔造者,今天我们就来探索下关于fork()函数的一些用法一、父子进程号的差别fork()函数创建进程后的情况是比较复杂的,一般来说,它会产生父子进程,而我们只需要对这两个进程来进行研究就可以解决大部分问题了。下面我们来看一个例子:#include <stdio.h>#include <sys/types.h>#include <unis.
2020-11-24 17:27:54
477
原创 树莓派IO口的驱动编写与测试
文章目录前言一、IO口驱动代码的编写1.驱动源码:2.应用层的代码:3.将两个文件转移到树莓派上:二、IO口实际功能的测试1.配置驱动:2.测试总结前言继上期实现了树莓派驱动之后,这次来具体编写树莓派一个IO的驱动,并进行实际的测试。一、IO口驱动代码的编写1.驱动源码:在liunx桌面vi一个pin4.c文件,将源码保存进去,然后将这个文件移入制定目录中。#include <linux/fs.h>#include <linux/module.h>#inclu
2020-11-16 18:29:43
519
原创 树莓派底层字符驱动的实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、二、使用步骤1.引入库2.读入数据总结前言继前面编译了树莓派内核之后,这次来实现树莓派底层字符驱动,刚接触树莓派的时候,我们都是调用wiringPi库中的API来实现一些特定的功能,但随着学习的深入,我们应该要去接触一下这些底层的东西,尝试自己编写代码来实现wiringPi库的功能。一、示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例
2020-11-12 22:39:27
238
原创 liunx内核的编译过程
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言最近学习到了liunx底层驱动部分,要想自己编写相关的驱动代码,首先得对树莓库内核进行编译,首先又得在Ubuntu虚拟机上完成相关的liunx内核编译,这篇文章就来记录一下这个过程。一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import
2020-11-11 22:30:22
286
1
原创 带wiringPi库的交叉编译该怎么进行
前言我们在进行交叉编译时,有的时候被编译文件使用了wiringPi库中封装的api这个时候我们的交叉编译方式也要随着改变,所以这篇博文来介绍这个方法。一、wiringPi库的下载以及配置:链接:https://pan.baidu.com/s/1cT08Deagt0_ydG07SGKb-A提取码:3y6m复制这段内容后打开百度网盘手机App,操作更方便哦二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matp
2020-11-10 21:01:06
364
原创 交叉编译的概念以及交叉编译工具的安装
1. 交叉编译是什么,为什么要交叉编译:我们先来看看什么是编译,它是在一个平台上生成在该平台上的可执行代码。而交叉编译 是在一个平台上生成另一个平台上的可执行代码。例如我们再windows上面编写C51代码,并编译成可执行代码,如xx.hex,这是在c51上面运行,而不是在windows上面运行。另一方面我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out,这是在树莓派上面运行,而不是在ubuntu linux上面运行。2.我们为什么要使用交叉编译:有时候平台上不允许或不能够安装
2020-11-10 17:48:40
386
原创 链表与数组的区别以及链表相关的操作
1.链表与数组的区别1.链表与数组的区别:谈到链表与数组的区别,可以从几个不同的角度来谈,首先从逻辑结构上说,两者都是数据结构的一种,但存在区别,数组是申请的一块连续的内存空间,并且是在编译阶段就要确定空间大小的,同时在运行阶段是不允许改变的,所以它不能够随着需要的改变而增加或减少空间大小,所以当数据量大的时候,有可能超出了已申请好的数组上限,产生数据越界,或者是数据量很小,对于没有使用的数组空间,造成内存浪费。链表则是动态申请的内存空间,并不像数组一样需要事先申请好大小,链表是现用现申请就OK,
2020-11-09 23:58:45
393
原创 liunx下open read等函数的用法
liunx下 open read等api的用法大家应该都听过一句话,就是“liunx下一切皆文件”,这句话的意思是在liunx平台下一切操作都可以归结为对文件的操作,因而文件操作相关的函数就极其的重要,掌握了它们,就相当于为自己liunx平台的学习之路打好了坚实的基础。一、相关文件操作函数的原型以及各个参数的解读open()函数功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。所需头文件:#include <sys/types.h>,#inc
2020-11-08 11:02:20
813
原创 c语言中结构体大小的计算
笔试高频考题之结构体大小的计算结构体,是c语言中能面向对象编程的重要支撑,因而在c语言编程中被广泛应用,因而在嵌入式工作的笔试题中经常出现结构体大小计算类型的题目,下面让我们来看看结构体大小计算的具体细节。由于存储变量地址对齐的问题,结构体大小计算必须满足两条原则:一、结构体成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)二、结构体大小必须是所有成员大小的整数倍下面来具体分析1、简单结构体struct s1{char ch1;char ch2;int i;};这个结构体
2020-11-06 12:36:53
859
原创 liunx系统文件中转站(ftp服务)项目
liunx系统文件中转站(ftp服务)项目此项目可用于检验自己对于liunx系统编程以及c语言编程的熟练程度,因为这里面使用到了关于c语言编程的函数调用,字符串函数,结构体等知识,也用到了liunx系统编程中的进程,文件,soket网络编程等功能,可以说是需要的东西是很多的,能够写出这个项目的代码,证明你的c语言编程能力已经很强大而liunx系统编程也已经很熟练,下面上相关源码:这个项目分为三个部分,服务端,客户端,相关配置文件,下面介绍相关部分:1.服务端:#include <stdio.h
2020-11-02 23:07:38
683
原创 MobaXterm 软件的安装与使用
MobaXterm 软件的安装与使用1.MobaXterm的安装包链接以及安装:百度云盘链接:https://pan.baidu.com/s/1yuqysiGIRocw9kHn3MBIoQMobaXterm是一个类似于SecuerCRT的终端软件,他的功能要比CRT更强大,博主原本也是使用CRT的,但经朋友推荐之后立马就体会到了这个软件的方便之处,因而我也推荐大家使用这个软件作为终端调试软件。下载好文件之后,由于是压缩包,所以需要解压,当解压完成后就可以找到真正的安装包,按照提示的步骤一一做好之后
2020-11-02 21:21:35
1369
原创 自己编写代码实现liunx平台的cp指令
自己编写代码实现liunx平台的cp指令使用了liunx平台的相关指令之后,又学习open,read,write这些函数的使用,就来自己实现下cp指令,下面直接上代码。#include <fcntl.h>#include <stdio.h>#include <unistd.h> //相关头文件#include <string.h>#include <stdlib.h>int main(int argc,char **argv)/
2020-10-18 22:47:05
274
原创 贪吃蛇游戏的制作
liunx系统下用c语言做的贪吃蛇游戏我在学习c语言编程之后,对于链表和结构体的用法还不太清楚,因而通过来制作这样一个小游戏来加强自己对这两个知识点的应用,同时,因为c语言的一些缺陷,所以我们还得用上ncurses的图形界面库,并使用liunx系统编程中的线程来进行编程,废话不多说,上源码。#include<stdio.h>#include<curses.h>#include<stdlib.h>#include<pthread.h>#define
2020-10-17 14:23:45
518
原创 liunx内核文件系统
liunx内核文件系统什么是文件系统?常规认知: 就是桌面的根目录实际上来说文件系统是操作系统用于明确存储设备组织文件的方法。以上说的方法:就是文件管理系统(程序),简称文件系统 。文件系统(文件管理系统的方法)的种类有哪些?FAT VFAT NTFS EXT1/2/3/4 HFS …树莓派查看文件系统的命令: df -Tvfat : boot(bootloader, kernel)ext4 : 根目录tmpfs : 内存文件系统什么是分区?windows: 随意
2020-10-09 22:02:38
97
原创 带wiringPi库的交叉编译怎么进行以及软硬链接的区别
带wiringPi库的交叉编译怎么进行以及软硬链接的区别1.带wiringPi库的交叉编译:① 正常我们先要交叉编译wiringPi库,编译出的库适合树莓派,这时候交叉编译可执行程序的试试,链接库的格式也是正确的,先下载好相应的wiringPI库,解压之后通过共享文件夹移入unbuntu内。②通过-I -L来指定因为链接的库的格式不对,是宿主机的平台,出现以下错误arm-linux-gnueabihf-gcc demo2.c -I /home/CLC/lessonPI/WiringPi/wirin
2020-10-03 20:58:29
202
空空如也
qt按钮设置背景图片后怎么消除边框还能让背景图片正常显示
2021-08-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人