- 博客(66)
- 收藏
- 关注
原创 Linux静态库与动态库的概念及制作
在日常编程中我们不想让别人看到我们写的源码,但还需要发给对方使用,在这种情况下我们引入了静态库动态库,让对方用调库的方式也可以实现我们直接写的代码的功能,同时对方耶无法查看我们写的源码。一.静态库静态库:是在程序执行前(编译)就加入到目标程序中去了优点:运行快;发布程序无需提供静态库,因为已经在app中,方便移植;缺点:大静态库的生成和使用1.生成xxx.o文件:gcc calcufuncs.c -c......
2022-07-04 11:09:28
791
原创 树莓派3B更新vim
方法如下:1.输入命令:sudo nano /etc/apt/sources.list2.用#注释或直接删除原有的内容,新增以下一条
2022-07-04 10:58:02
723
原创 配置树莓派接入网络
一.树莓派接入网络1.输入命令:sudo nano /etc/wpa_supplicant/wpa_supplicant.conf (nano是文档编辑器,进入便可编写)2.按下回车后输入以下代码(注意:只需修改" "的内容即可,其他的不变)
2022-07-04 10:48:56
3025
原创 树莓派串口登录与SSH登录方法
一.串口登录树莓派使用串口登录树莓派首先需要修改配置文件。所需外设:读卡器,SD卡,USB-TTL转换模块(USB转串口模块)1.打开SD卡根目录的"config.txt"文件,将以下内容添加在最后并且保存。...
2022-07-04 10:34:09
2247
原创 Linux FTP云盘项目
项目简介:Linux网络编程实现的FTP服务器,服务器由服务端和客户端组成,具有浏览远程服务端的文件和浏览客户端本地文件,客户端对远程服务端文件的上传和下载。
2022-06-30 14:55:39
507
原创 Linux网络编程
TCP/UDP对比1. TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。3. TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。 UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)4. 每一条TCP连.......
2022-06-24 09:53:35
250
原创 Linux线程相关概念
典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。......
2022-06-20 20:50:11
184
原创 Linux进程间通信
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。.........
2022-06-18 17:38:13
1437
原创 Linux进程相关概念
什么是进程?进程是程序的一次运行活动,通俗点意思是程序跑起来了,系统中就多了一个进程如何查看系统中有哪些进程?a.使用ps指令查看实际工作中,配合grep来查找程序中是否存在某一个进程...
2022-06-10 11:03:30
275
原创 linux下c语言实现cp命令
一.实现思路src 源文件 des 目标文件1.打开源文件(src)2.读(read)scr到buf3.打开/创建目标文件(des)4.将buf写入(write)目标文件5.关闭(close)目标文件和源文件二.main函数参数int main(int argc,char *argv[]){return 0;}C语言规定了main函数的参数只能有两个,一个是argc,一个是argv并且,argc只能是整数,第二个必须是指向字符串的指针数组。由于main函数不
2022-05-30 17:26:25
1017
原创 Linux文件编程
1.open—文件的创建与打开函数原型SYNOPSIS #include <sys/types.h> //这里提供类型pid_t和size_t的定义 #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); /* 比较常用*/ int open(const char *pathnam
2022-05-30 15:53:54
294
原创 C语言——结构体知识点总结
1.结构体的定义与使用结构体跟我们之前接触的数组的概念很相似,数组是类型相同的一组变量的集合,而结构体类型不同的一组变量的集合。这样就会使数据更多,类型更丰富,数据量更大。结构体在定义的时候我们不关心这个结构体里面变量的值,它就类似于模板一样,至于变量的大小或内容我们再编程的时候会给它们补充完整,哪怕定义的变量没有用到也是可以的。如何定义结构体在给结构体中的赋值的时候,可以类比我们平时给普通变量赋值的情况。
2022-05-22 15:43:55
4047
原创 C语言—指针概念简述
1.什么是指针假设我们要去访问一个变量,有两种方式:1.通过变量名访问。2.通过地址访问。int a = 10;printf("a = %d\n",a); //1.通过变量名访问printf("a =%d\n",*(&a)); //2.通过地址访问 //取值运算符:把后面内存地址中的数据取出来有了上面的例子,我们引入指针的概念。我们用最粗暴的方法来理解什么是指针,指针就是地址。什么是指针变量?存放地址的变量就是指针变量。指
2022-05-20 16:04:01
1134
原创 C语言—数组入门及概述
int a[10] ;它表示定义了一个整形数组,数组名为a,此数组有10个整形元素。定义一个一维数组的一般表达形式:类型符 数组名[常量表达式];这里要注意必须是相同的数据类型。
2022-05-04 15:06:53
3715
原创 学习笔记—STM32之DMA简介及相关结构体概述
1.DMA功能讲解关于DMA的功能手册上是这么说的。说白了就是DMA可以把数据从一个地方传输到另一个地方,并且不占用CPU。举个例子,比如我们想通过串口发送数据,正常来讲是存放到Flash或SRAM的代码通过总线矩阵,由Cortex-M3的内核进行控制,再回到系统总线的外设当中。如果有DMA的话,Flash和SRAM中的数据可以直接通过总线矩阵访问到DMA可以直接和串口的外设发送数据,可以不用经过CPU。DMA1有七个通道如下图所示:并且DMA1支持P->P(内存到内存
2022-04-27 17:14:03
3334
原创 STM32-OLED屏幕显示教程
STM32内部建立一个缓存(共128*8个字节),每次修改的时候,只是修改STM32上的缓存(实际上就是SRAM)OLED即有机发光管(Organic Light-Emitting Diode,OLED)。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低功耗、极高反应速度、可用于绕曲性面板、使用温度范围广、构造及制程简单等有点,被认为是下一代的平面显示屏新兴应用技术。OLED显示和传统的LCD显示不同,其可以自发光,所以不需要背光灯,这使得OLED.
2022-04-25 19:57:14
101388
31
原创 学习笔记-IIC协议简介及STM32的IIC特性及架构
IIC协议简介IIC通讯协议(Inter----Integrted Circuit)是由Phiips飞利浦公司开发的, 由于他引脚少,硬件实现简单,可拓展性强,不需要UASRT,CAN通讯协议的外部收发设备,现在被广泛使用在系统内多个集成电路IC(芯片)间的通讯。 (半双工的通讯方式)
2022-04-20 14:38:11
4376
原创 手把手教STM32基础项目之震动感应灯
目录1.项目概述2.材料准备3.接线图4.GPIO相关配置5.中断相关配置6.项目总结1.项目概述该项目非常适合初学stm32的小白进行尝试,本项目运用了stm32常用的外设如io,中断,也用到了常用的模块,有继电器模块,振动传感器,相信尝试完这个项目之后小白们都可以顺利入门stm32.2.材料准备1.stm32F103c8t6最最小系统板2.震动传感器模块3.一路继电器模块3.接线图4.GPIO相关配置...
2022-04-18 12:59:13
4264
4
原创 STM32基础知识——GPIO输入输出模式
上拉输入/下拉输入上拉输入和下拉输入的概念很好理解,就是I/O口接上上拉电阻或下拉电阻,将io口的初始化状态固定到高电平或低电平,然后经过了TTL施密特触发器将模拟信号转化为数字信号,再将这些数字信号输入到数据寄存器中再供给我们的单片机读。浮空输入浮空就是逻辑器件与引脚即不接高电平,也不接低电平(不经过上下拉电阻),即输入引脚浮空。通常用于串口以及iic的外设等。模拟输入模拟输入顾名思义就是输入的是模拟信号,例如3.3v,5v,1.9v等,该输入方式就没有经过上下..
2022-04-18 10:12:30
2311
原创 DHT11温湿度模块入门
1.模块简介DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通 空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医疗;自动控制特点 :相对湿度和温度测量 全部校准,数字输出 长期稳定性 超长的信号传输距离:20米 超低能耗:休眠 4 引脚安装:可以买封装好的 完全互换 : 直接出结果,不用转化。数据传送逻辑 :只有一根数据线DATA,单片机发送序列指令给DHT11模块,模块一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据
2022-04-17 13:46:31
7973
原创 LCD1602屏幕简介(全网最详细教程)
要想搞懂1602如何显示,就只需搞懂两个问题(在哪显示,如何显示)。LCD1602可以显示16*2个字符且通过D0-D7八个引脚传输数据八位数据,每一个显示的位置都对应上图的一个地址。例如我想在第一行的第三个位置显示,那么就可以锁定上表中的“02”,换算成二进制就是0000 0010。听上去很简单,但是LCD1602有个特点就是写入显示地址时要求最高位 D7 恒定为高电平。所以我们想显示真实的地址应该为1000 0010。
2022-04-16 16:07:39
92036
16
原创 学习笔记:51单片机(STC89C52)如何定时10ms
1.定时器如何定时首先大致描述一下定时器的定时原理,其实本质就一句话:每经过一个机器周期,寄存器就加1。这里就又要解释什么是时钟周期,什么是机械周期。我们的51单片机无论是开发板还是最小系统板上,都会有一个电子元件叫做“ 晶振 ”,这个晶振就是单片机的“心脏”。通常为了使串口波特率稳定传输数据,大部分的51单片机上的晶振频率为11.05922MHz。时钟周期 的计算方法就是晶振频率的倒数,也就是11.0592分之一秒。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基
2022-02-14 20:02:30
13481
原创 Altium Designer在PCB中如何批量修改丝印字号大小
第一步:随意选择一个字体单机鼠标右键,选择“查找相似对象” 第二步:在Text Height处把Any修改为Same,点击“应用”,“确定”。第三步:在屏幕最右侧会弹出指令框,在“Text Height”处修改为我们想要的大小即可,输入完成后点击屏幕任意位置即可。...
2022-01-09 11:38:00
9481
原创 基于STM32的LoRa无线通信(AS32—TTL-1W)
前些天接触到一个小项目,需要使用无线传输的功能,不仅如此还需要远距离的通信,搜索资料后最终选择了泽耀科技的LoRa(AS32—TTL-1W)无线串口模块。之前使用的是100mW的无线模块,经拉距实测在非空旷地带通信距离不到800米。因此这次我选择了1W的无线串口,一般情况下功率越高通信距离就越远。这次还未尽量拉距测试,测试完成后我会继续写一篇测评文章。今天就给大家分享一些我开发的过程以及遇到的一些bug。无线串口简介我使用的泽耀科技生产的AS32—TTL-1W,单价55(不含天线),天线单买10
2022-01-08 16:56:16
25875
52
原创 Wemos基础项目之---基于WemosD1接入家庭wifi打印IP地址
开发板:Wemos D1项目描述:在STA模式下,将WEMOS D1接入家里的无线WiFi网络当中并通过串口助手将IP地址打印出来。一个非常入门的小项目,废话不多,开整!代码如下:#include <ESP8266WiFi.h> //头文件中包含Arduino IDE中封装好的ESP8266的库char* ssid ="2203"; //这里字符串内改成自己家里的wifi名称即可char* passwd ="liujiaxing";//这里是你家wifi
2022-01-06 20:13:58
5549
原创 L298n电机驱动模块(芯片)快速入门
目录l298n模块详解l298n芯片简介在嵌入式领域中l298n属于最常用的电机驱动模块,该模块稳定,耐用,操作简单备受广大电子爱好者的喜爱,今天小编结合自己开发的经验来给初学者门聊聊如何使用这款模块及芯片的用法l298n模块详解如图所示,模块左右两侧的2P的端子是接入电机的,左右两端分别可以接入一个直流电机。由于直流电机不分正负所以怎样接都是可以的。中间3P的端子分别接12V,GND,5V。黑色排针部分左右两端的跳帽插上代表使能,l298n有两个通道,所以有两个使能跳帽。中间的四.
2022-01-06 18:47:45
64324
11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅