自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 IO多路复用客户端程序

IO多路复用是为了解决阻塞问题。引起阻塞的两个函数,read(),accept()函数。步骤如下:1、把关心的文件描述符加入到集合中FD_SET。2、调用select()/pol函数去见监控集合fd_set中哪些文件描述符,阻塞等待集合中一个或者多个文件描述符有数据。3、当有数据时,退出select(),此时说明有数据写入。4、用FD_ISSET()以此判断哪个文件有数据。5、依次处理有数据的文件描述符的数据。 1 /*./client serv_ip serv_port*/ 2 #.

2021-08-12 22:18:30 185

原创 网络编程TCP/IP协议(三)--------------UDP套接字编程

1 #include <stdio.h> 2 #include <string.h> 3 #include <unistd.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <unistd.h> 7 #include <stdlib.h> 8 #include <sys/types.h> 9 #include &..

2021-08-11 14:35:12 149

原创 网络编程TCP/IP协议(二)----- 多进程多线程服务器

1 #include <stdio.h> 2 #include <pthread.h> 3 #include <string.h> 4 #include <unistd.h> 5 #include <stdlib.h> 6 #include <string.h> 7 #include <unistd.h> 8 #include <stdlib.h> 9 #include &lt..

2021-08-10 10:31:12 1460 1

原创 网络编程TCP/IP协议-----服务器端客户端构建(一)

|`这里是引用#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <strings.h>#include <netinet/in.h>#include <netinet/ip.h

2021-08-08 15:27:40 382 2

原创 进程间通信-----消息队列

消息队列消息队列是System IPC对象的一种。消息队列就是一个消息的列表。用户可以在消息队列中添加消息、读取消息等。多个进程通过消息队列的标识符对消息数据进行传送。消息列队可以按照类型来发送/接收消息。案例要求:两个进程通过消息队列,轮流将键盘输入的字符串发送给对方,接收并打印对方发送的消息。进程A#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string

2021-08-01 11:43:58 187

原创 利用有名管道进行任意进程间通信

有名管道的特点可用于任意进程之间通信。无名管道只能是父子进程或兄弟进程间通信。打开管道时可以指定读写方式。无名管道只能是单工通信模式。通过文件IO操作,内容放在内存中,当关闭读端和写端时,内容被释放。示例要求进程A:循环从键盘输入并写入有名管道myfifo,输入quit时退出。进程B:循环统计进程A每次写入myfifo的字符串的长度第一步:创建有名管道 (creat_fifo.c)#include<stdio.h>#include<stdlib.h>#in

2021-07-28 22:34:10 215

原创 Linux下共享库的创建及链接

共享库编译(链接)时,仅记录用到哪个共享库中的哪个符号,不复制共享库中相关的代码特点:程序不包含库中的代码,尺寸小多个程序可以共享同一个库程序运行时需要加载库库升级方便,无需重新编译程序共享库创建确定库中函数的功能、接口编写库中源码hello.c bye.c编译生成目标文件-fPIC 生成位置无关代码,可以在任何位置执行。共享库可以被不同的程序执行。创建共享库 commongcc -shared -o libcommon.so.1 hello.o bye.o以li

2021-07-22 22:03:52 606

原创 Linux下静态库的创建及链接

库是什么在OS上运行的程序基本上都需要使用库,使用库可以提高开发效率。 库是一个二进制文件,包含的代码可以被程序调用。比如 标准C库、数学库、线程库等等。库有源码,可下载后编译;也可以直接安装二进制包。库的存放路径一般是/lib /usr/lib静态库的特点编译(链接)时,把静态库中的相关代码复制到可执行文件中。优点:- 程序中已包含代码,运行时不再需要静态库。- 程序运行时无需加载库,运行速度更快。缺点-占用更多的磁盘空间-静态库升级后,程序需要重新编译链接。静态库的创建(1)以he

2021-07-22 15:37:07 1648

原创 单片机数据手册专业词汇中英对照(一)

1. Flash memory 快闪存储器(快闪)可进行多次数据擦写的储存器2. registers 寄存器3. Microcontrollers 微控制器4. System bus (S-bus) 系统总线5. DCode bus D总线6. BusMatrix 总线矩阵7. GP-DMA (general-purpose DMA) 通用DMA8. Five masters 五个驱动单元9. Three slaves 三个被动单元10. Access arbitration 访

2021-01-16 09:48:50 1387

原创 STM32GPIO输入输出的八种工作模式

前言:每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL, GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。根据数据手册中列出的每个I/O端口的特定硬件特征, GPIO端口的每个位可以由软件分别配置成多种模式。GPIO的四种输入(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOAT

2021-01-15 22:23:58 4258

原创 基于matlab的常规模糊控制器与PID控制器的比较

模糊控制器clear;y=0;h=0.1;r=10;sum=0;x1_0=0;a=ones(1,2);b=ones(1,3000);c=ones(1,3000);m=newfis(“Fuzzypif”); %创建一个 FIS (Fuzzy Inference System ) 对象%增加模糊语言变量m = addvar(m,‘input’,‘error’,[-100,100]);%第一个输入变量error%添加模糊语言名称m =addmf(m,‘input’,1,‘error&

2020-12-23 19:09:09 2480 1

原创 模糊控制与神经网络部分知识点复习

前两天刚刚结束《智能控制系统》的考试,这门课的重点是模糊控制和神经网络,期间自己整理了一些习题,主要是填空题和简答题。模糊控制的大题是模糊控制器的设计,里面的题型不外乎这么几类:模糊控制的特点:1) 无需知道被控对象的数学模型2) 反映人类智慧思维的智能控制3) 易被人们所接受4) 构造容易5) 鲁棒性好模糊集合常用表示方法Zadeh表示法序偶表示法向量表示法隶属度函数建立准则表示隶属度函数的模糊集合必须是凸模糊集合。变量所取隶属度函数通常是对称和平衡的。隶属度函数的逻辑要

2020-12-22 15:02:57 4324

原创 C语言数组基础知识之编程案例-(二)

如何用数组求总和及平均值利用数组可以完成很多的事情,最简单的事情是可以用来求和。#include<stdio.h>int main(){int n,sum=0,a[10]; //定义数组大小,10个元素float aver; //定义浮点型变量for(n=0;n<10;n++) //for循环{ scanf("%d",&a[n]); //从键盘上依次输入10个数 sum = sum + a[n]; //执行10次,将输入的数进行累加}aver =

2020-12-21 16:28:48 243 3

原创 C语言数组基础知识的几点说明(一)

一维数组的定义类型说明符 数组名[常量表达式]比如:int a[10] ; float b[10]这条语句定义了有10个元素的int型数组a,a[0],a[1],a[2]…a[9;]定义了有10个元素的float型数组b,b[0],b[1],b[2]…b[9;]。定义比较简单,有几点说明必须要注意:几点重要的说明数组名的命名规则与变量名命名规则相同;常量表达式的值代表数组元素的个数;一个数组的所有元素是同种类型的一组变量;比如float b[10]中,b[0],b[1],b[2]…。b[

2020-12-18 10:11:52 422

原创 SCI写作超详细笔记

2020-12-11 11:25:15 343

原创 使用寄存器点亮跑马灯

STM32F103用寄存器点亮跑马灯寄存器其实不管用库函数法还是位操作,其本质都是操作STM32单片机的寄存器。那什么是寄存器呢?先来给寄存器下个定义寄存器就是给特定的内存单元取一个别名,这个别名就是我们常说的寄存器。这里的重点是"内存单元",如下栗子上图来自于STM32官方数据手册,左边是地址,右边是相对应的外设。而寄存器就是,给这些地址取的一个别名。那为什么要这么做?如果我要给GPIOB的端口全部输出1,不用寄存器,即直接对地址赋值:每次这么操作是不是很麻烦。如果使用寄存器:说白了,就

2020-12-11 11:19:11 1007

原创 用库函数点亮跑马灯

用库函数点亮跑马灯-STM32F103单片机学习单片机,很基础的一个模块就是点亮跑马灯。点亮跑马灯有三种方法,分别是库函数法、寄存器法、和位操作法。本文讲库函数法。步骤如下第一步:使能IO口时钟第二步:GPIO函数配置第三步:编程点亮LED灯的点亮原理...

2020-12-08 16:50:33 695

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除