自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UNIX环境编程基础

mycopy实例重写:#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int main(int argc, char *argv[]){ int fsrc; int fdst;

2022-05-03 20:58:06 645

原创 linux常见指令

linux常用命令ln:建立连接df:查看磁盘空间ps:查看进程状态lsmod:内核模块列表mkfs:磁盘格式化insmod:加载内核模块lsmod:内核模块列表modprobe:内核模块管理工具find:查找文件grep:查找文件内容sudo find / -amin -15 查找最近15分钟访问过的文件sudo find / -atime -2 查找最近48小时访问过的文件sudo find /-empty 查找空文件或者文件夹sudo find /

2022-05-01 18:24:45 105

原创 linux串口操作

【串口操作方式】#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <errno.h>int main(){ int fd;

2022-05-01 17:57:43 1298

原创 Socket套接字

Socket套接字Socket常被翻译成套接字或者插口,Socket实际上是网络上的通信端点。在使用Socket通信之前,需要创建socket对象,通常使用socket()函数创建socket()对象。int socket(int domain, int type, int protocol);domain:指定使用的域,通常是ipv4,ipv6等;AF_INET表示IPv4协议。type:指定数据传输的方式,SOCK_STREAM:面向连接的数据流方式,SOCK_DGRAM:无连接的数据报方式。

2022-05-01 17:53:40 920

原创 多线程开发

**线程:**线程是一种轻量级的进程,线程是操作系统调度的最小单位,可以理解为一个进程是一个或者多个线程组成的。Linux系统开发多线程程序大多使用pthread库,其操作函数基本都以pthread开头。创建线程的函数定义如下:int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(start_routine)(void), void *restrict arg);thread

2022-05-01 17:38:55 491

原创 多进程开发

**进程:**Linux系统至少有一个进程,一个程序可以对应多个进程,一个进程只能对应一个程序。由于历史原因,大多数UNIX系统的main()函数定义为:int main(int argc, char *argv[ ], char *envp[ ]);argc表示参数argv有多少个字符串,argv表示一个不定长的字符串数组,envp以name=value的形式存放了一组进程中会用到的环境变量。环境变量:读取环境变量:getenv();设定环境变量:putenv();char *getenv(

2022-05-01 17:24:44 291

原创 内存管理和使用

**堆栈:**堆和栈只有在程序运行时才存在,一个计算机应用程序在内存中可以分为两个部分:代码段和数据段,代码段存放用户编写的代码,数据段可以分为堆和栈。**BSS区:**存放未初始化变量,BSS存放的数据在开始执行之前被内核初始化为0或者空指针(NULL)。gcc hello.c -o hello显示结果如下:lwb@ubuntu:~$ size hellotext data bss dec hex filename1515 600 8 2

2022-05-01 17:02:08 371

原创 小端字节序下数据存储函数改写

STM32存储数据是小端字节序存储,标准库函数下会默认拷贝数据时由高地址向低地址拷贝,程序1为正序拷贝函数。void mymemcpy(void *dst, void *src, int n) { char *pdst=(char *)dst; char *psrc=(char *)src+n-1; while(n--) { *pdst++=*psrc--; }}STM32存储数据是小端字节序存储,以下两个函数可以实现高低位的互换。unsigned int myint

2021-09-03 16:37:26 86

原创 静态库和动态库

(一)静态库的创建及使用:(新建目录:mkdir static,在此目录下进行操作)1 创建主函数和两个子函数,主函数内部将会调用子函数;2 将两个子函数打包成静态库函数;3 编译主函数时进行链接创建好的静态库;详细步骤:一 创建主函数和两个子函数1 vi add.cint add(int a,int b){return a+b;}2 vi max.cint max(int a,int b){return a>b?a:b;}3 vi staticmain.c(主函数

2021-05-29 21:24:16 104

原创 树莓派引脚编程

(一)认识树莓派wiringPi库1 wiringpi库:包含的API接口有GPIO控制口,中断,多线程等。2 查看GPIO引脚编号表:命令:gpio readall(二)使用wiringPi库对树莓派引脚编程1 针对gpio7引脚的高低电平编程:命令:vi gpio1.c#include <wiringPi.h>#include <stdio.h>int main(){ int cmd; if(wiringPiSetup()==-1) //wiringPi

2021-05-29 20:56:42 309

原创 树莓派串口通信

一,树莓派串口通信准备步骤1 利用xshell或者putty等软件进行网络连接树莓派2 修改 cmdline.txt文件,解除串口被当做电脑与树莓派的交互界面,使得其可以进行数据交互发送。命令:cd /boot/ sudo vim cmdline.txt删除【】之间的部分:dwc_otg.lpm_enable=0 【console=ttyAMA0,115200】 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=

2021-05-29 20:38:13 543

原创 linux文件系统

文件系统:文件管理系统(是一个大的程序),简称文件系统。命令:ls fs挂载点的意义:挂载是将文件系统和目录树结合在一起的操作,挂载点是个目录,且该目录是文件系统的入口。inode: 索引节点,本质是结构体构成的数据结构,包含了与文件系统中各个文件相关的信息。superblock: 记录filesystem的整体信息block:记录档案内容。inode:记录档案属性,同时记录档案中数据所在的block号码。df命令:查看已挂载的文件系统。/bin目录:记录了常用的命令:cat chgrp

2021-05-29 20:11:54 88

原创 linux文件操作

Linux的文件类型有7种:普通文件:Regular file目录文件:Directory file块设备文件:Block special file字符设备文件:Character special file命名管道文件:FIFO 套接字文件:Socket符号链接文件:Symbolic link普通文件:分为文本文件和二进制文件,文本文件是字符文件,就是我们可以直接查看的文件,例如我们编写的C语言程序(vi filename即可直接查看)二进制文件表示的是信息在内存中的格式,例如C程序编译过后

2021-05-29 19:46:02 82

空空如也

空空如也

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

TA关注的人

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