自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式Frambuff编程

分享给别人刚发现部分

2022-11-30 12:00:07 746 1

原创 Imx6ull-pro驱动开发基础1

imx6ull应用基础

2022-11-28 11:08:14 450

原创 linux基础命令

JZ2440

2022-11-21 10:59:12 168

原创 基于Linux网络编程的聊天室

多并发服务器

2022-11-11 10:29:54 252

原创 Linux知识点总结(文件,进程,进程间通信)

linux知识点全面总结

2022-11-11 09:37:23 404

原创 香橙派H616开发

aaa

2022-10-22 20:55:21 736

原创 C语言基础

C语言笔记

2022-10-21 21:49:14 196

原创 栈的实现原理及应用

栈的实现原理及应用

2022-10-14 16:13:20 528

原创 树莓派与Ubuntu

树莓派

2022-10-11 21:58:37 1079

原创 树莓派从零开始

树莓派登录及获取源

2022-10-10 10:11:14 516

原创 Linux在线词典开发流程

Linux在线词典开发流程。

2022-10-03 17:43:01 227

原创 matlab的基础准备及入门

matlab的基础准备及入门。

2022-09-20 15:25:53 767

原创 C语言知识点查缺补漏

1、控制不同进制的输出int a = 100; printf("原样输出\n"); printf("16进制为a=0x%x\n",a); printf("10进制为a=0d%d\n",a); printf("8进制为a=0o%o\n",a);2、混合输入#include<stdio.h>int main(){ int a; char b; float c; printf("分别输入一个数字、字符、小数\n"); scanf("%d%c%f",&a,&

2022-08-21 20:25:18 465

原创 linux下实现贪吃蛇小游戏

1、为什么我们需要使用ncurse?因为在玩贪吃蛇时,我们需要一个很快的按键响应,ncurse在即时按键响应这方面做得比较好,当然现在已经很落后了。

2022-08-15 23:07:22 1394

原创 OLED屏幕显示

OLED屏幕显示

2022-08-03 11:05:09 1053

原创 基于51单片机的温湿度测量系统

基于51的温湿度检测系统

2022-08-02 11:50:40 1151

原创 智能感应垃圾桶

距离感应开盖,按键开盖,震动开盖

2022-07-30 10:36:25 446 1

原创 基于51单片机的报警器

单片机报警器,菜鸟级别,不喜勿喷

2022-07-28 13:08:45 1038 1

原创 类与对象。

类:类是描述一个事物(对象)的集合,涵盖了事物的属性特征和行为特征。属性特征:描述事物的状态。(是什么)行为特征:描述事物的行为。(能做什么)对象:是类的具体,是类的一个具体实例。人类====男人 + 女人。关系:类是抽象的,对象是具体的。//对象的创建与访问//数据类型:8种数据类型,引用数据类型//格式:数据类型 变量名称 = new 数据类型();变量名称放入栈中,new开辟的空间放入堆中,当栈中地址与堆中地址一致时就可以访问,所以叫访问数据类型,定义类就是定义类的成员,包括成

2022-05-22 10:28:59 83

原创 JAVA基础语法(下)

方法重载:多个方法名称相同,参数列表不同(参数个数不同、参数类型不同)。打印的方式调用函数,函数必须要有返回值。数据类型:用来指定开辟多大内存空间。new:java中的关键字,用来开辟内存空间。//动态初始化int[] array = new int[10];//初始化一个int数组,里面存放十个数据double[] array1 = new double[20];String[] array3 = new String[23];//静态初始化public static void main

2022-05-12 19:41:43 164

原创 java实现99乘法表

package com.smh;public class Mult{ public static void main(String[] args) { int i = 1; int j = 1; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { System.out.print((i*j)+" ")

2022-05-11 10:42:25 106

原创 JAVA基础语法(中)

一、八种基本数据类型计算各数据类型大小:package com.smh;//package是关键字,表示包名,创建类时,在src文件夹下面创建一个com.smh的文件夹public class hello{ public static void main(String[] args) { System.out.println("int整数类型的最小值是:"+Integer.MIN_VALUE); System.out.println("int整数

2022-05-11 10:41:16 43

原创 JAVA基础语法上

运行JAVA程序需要使用JRE开发JAVA程序需要使用JDKJDK包含开发工具和JRE,JRE又包含系统API和JVM.JAVA1.8:编译工具:JAVAC.exe运行工具;java.exebin文件夹:该文件夹存放了JDK的各种具命令include:存放平台特定的头文件lib:存放JDK工具的一些补充JAR包conf:存放JDK相关配置文件(1.8版本没有这个文件夹)Source:源(Src)cd指令一次进入两个文件夹:cd ruanjian\java1.8cls:清屏cd…回退到

2022-05-07 19:01:20 195

原创 socket网络编程

怎么让两台设备之间互相通信呢?这就涉及到了网络通信,那么一台设备如何找到另一台设备呢?通过网络地址,地址又包括IP地址与端口号,端口号的作用在于当一个IP地址上面同时跑很多程序时,端口号用于区分这些程序。TCP与UDP的区别:1、 TCP面向连接 (如打电话要先拨号建立连接); UDP是无连接 的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑

2022-05-02 17:59:53 291

原创 Linux多线程

为什么要使用多线程?传统的linux进程可以看成只有一个控制线程:同一进程在同一时刻只能执行一件事情。有了多个控制线程后,我们可以把程序设计成在同一时刻不只做一件事情。进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理器的空转时间支持多处理器和减少上下文切换开销,也就出现了线程。(就是防止进程某一部分等待,导致进程白白切换)。使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操

2022-04-30 17:31:07 372

原创 进程间通信

什么是进程间通信?两个进程可以同时往公共内存区(管道)存或发数据这样的全双工通信是真正意义上的通信。一、管道管道通常指无名管道特点:(1)它是半双工的,数据只能在一个方向上流动。(2)只能用于父子进程间通信。(3)它可以看成是特殊的文件,对于它的读写,也可以使用write,read等函数;但它不属于文件,不存在于其他任何文件系统,只存在于内存中。原型: #include <unistd.h> int pipe(int pipefd[2]);pipe是创建一个管道,

2022-04-26 15:53:34 95

原创 一篇文章了解Linux下进程相关知识

1、什么是程序,什么是进程,有什么区别?程序是静态的概念,进程是动态的概念。gcc a.c -o a,a就是一个程序,存在于硬盘中,当a跑起来之后,系统中就多了一个进程,进程就是跑起来的程序。2、什么是进程标识符?每个进程都有唯一的非负整数表示唯一ID,叫做pid,类似进程的身份证pid = 0,交换进程,作用是进程调度pid = 1,init进程,作用是系统初始化用top来查看进程的pid以及占用cup,以评估程序好坏。#include <stdio.h>#include

2022-04-25 16:17:20 2419

原创 一篇文章搞懂Linux文件操作

打开函数:open读写函数:write/read光标定位:lseek关闭:closeman 2 open:在man手册第二页查看open函数一、打开文件(1) int open(const char *pathname, int flags):const char *pathname:是一个字符串,表示的是要打开的文件地址;flags:包含以下标志位O_RDONLY 以只读方式打开文件O_WRONLY 以只写方式打开文件O_RDWR 以可读写方式打开文件. 上述三种旗标是互斥的, 也

2022-04-22 18:06:54 3243

原创 通过LCD1602来了解时序

这张图片说明LCD1602共有两行32个位置来显示字母,那如何定义在哪个位置来显示字母,显示的字母是什么呢?这里我们定义一组输出口为D0—D7,共8位来控制字符的输出。例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1 所以实际写入的数据应该是 01000000B(0x40) +10000000B(0x80)=11000000B(0xC0)。要写入数据时,我们让数据口输出为上面每.

2022-04-18 21:30:56 2227

原创 让51单片机进行上网

发送:TX接收:RXSBUF每次只能存储一个字节,如果是字符串的话,那就一个字符一个字符的去发送,,然后先把接收到的放入缓存,完全发送完毕再进行处理ESP-01s出厂波特率正常是115200设置ESP8266为9600波特率:AT+UART=9600,8,1,0,0AT+CWMODE=3 //1. 是station(设备)模式 2.是AP(路由)模式 3.是双模以设备模式接入家里路由器:AT+CWJAP=“9527”,“12345678” //指令查询IP地址:AT+CIFSR让WIFI作为

2022-04-14 23:26:05 3098

原创 串口通信的一些常用方法

1、我们来实现一个通过程序往串口端发送一个字母的实验。#include <reg52.h>#include <intrins.h>#include <stdio.h>sfr AUXR = 0x8E;char data_msg = 'X';void UartInit(void) //[email protected]{ PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 AUXR &=

2022-04-11 21:49:36 1942

原创 基于51单片机来开发的智能感应开盖垃圾桶

一、智能垃圾桶需求分析:当距离小于等于10时,垃圾桶开盖持续两秒钟,否则垃圾桶关闭盖子当检测到震动时,垃圾桶开盖持续两秒钟,否则垃圾桶关闭盖子当按下按键时,垃圾桶开盖

2022-04-11 13:03:34 3560 3

原创 51单片机使用超声波进行测距

#include <stdio.h>#include <reg52.h>#include <intrins.h>sbit LED1=P3^6;sbit LED2=P3^7;sbit Trig=P3^4;sbit Echo=P3^5;void Delay10us() //@11.0592MHz{ unsigned char i; i = 2; while (--i);}void Delay300ms() //@11.0592MHz{

2022-04-08 22:10:05 8801 4

原创 51单片机中定时器、中断、PWM实例分析。

配置一个1s的定时器#include "reg52.h"sbit led=P3^6;int cnd=0;void main(){ TMOD=0x01;//配置定时器0工作在16位计时模式 led=1; TL0=0x0000; TH0=0xDC00;//设置10微妙一个计数周期 TF0=0;//初始化爆表位为0 TR0=1;//开始计时 while(1) { if(TF0==1) { cnd++;//爆表一次次数加一 TF0=0; TL0=0x00;

2022-04-07 22:14:43 1211

原创 Linux基础操作

ctrl Alt T打开命令终端xrandr -s 1360x768把屏幕分辨率改为1360x768vi a.c 有就打开a.c文件,无就创建a.c文件按i进入编辑模式,看到insert就可以编辑代码,按esc回到命令行模式命令行模式下,按:wq,w:保存,q:退出ls:列出当前文件夹下所有文件pwd:显示当前文件路径mkdir +文件夹名字:创建文件夹cd :进入文件夹 cd … 退回上层文件夹;.代表当前路径,…代表上层路径。cd 什么都不加,直接回到工作目录mv a.

2022-04-05 17:53:22 880

原创 结构体及其相关知识

一、为何要使用结构体数组只能存放同一类型的数,结构体可以存放不同类型的数据。二、如何定义结构体//结构体的定义与使用//如何访问结构体;目标,内部的变量#include<stdio.h>#include<stdlib.h>#include<string.h>struct Student//结构体只起到模板的作用{ int score; char* name[128];//结构体里面定义字符串只能这么定义};int main(){ struct

2022-04-04 20:40:03 238

原创 字符串及其常用API

一、字符串的几种定义方式这里我们列举了四种字符串的定义方式,我们常用的是第四种字符串的定义方式。#include<stdio.h>#include<stdlib.h>int main(){ char str[5]={'p','y','r','e','w'};//字符串的第一种定义方式,类似字符数组 char str2[5]={"abcde"};//字符串的第二种定义方式 char str3[]={"hfdvbkejnvzksjf"};//字符串的第三种定义方式,无大小

2022-04-02 15:48:12 443

原创 指针数组与数组指针的区别

一、指针数组。字面意思来理解,就是指针的组。一个大小为n的数组,我们在数组里面存放n个地址,每一个地址均可以指向任意数的地址。#include<stdio.h>int main()//指针的集合,指针数组{ int a=3; int b=33; int c=333; int* parry[3]; parry[0]=&a;//这个数组用于存放地址 parry[1]=&b;//这个数组用于存放地址 parry[2]=&c;//这个数组用于存放地址

2022-04-02 09:24:24 197

原创 指针及其应用

1、变量的访问有两种方式:(1)变量名直接访问(2)地址直接访问(*代表取地址里面的内容)代码如下:#include<stdio.h>int main(){ int a=99; int b=999; printf("通过变量名访问内容,a的值是:%d\n",a); printf("通过变量名访问内容,b的值是:%d\n",b); printf("通过地址访问内容,a的值是:%d\n",*(&a)); printf("通过地址访问内容,b的值是:%d\n",*(&a

2022-04-02 09:01:27 201

原创 聊一聊数组

(1)数组是数据的集合。(2)数组的数据是同类型的。(3)!!!数组里面数据的地址是连续的,数组名代表数组的首地址/数组的第一个元素的地址也代表数组首地址。(4)数组与函数结合,数组名当做实际参数。一、数组的遍历及打印。int array[100];//没有初始化的数组,仅仅申请了100个整型数据的内存空间int array[3]={1,2,3};//有初始化的数组,完整初始化,该数组申请了三个整型数据的空间并依此赋值int array[100]={1,2,3};//有初始化的数组,不完整初始

2022-03-30 18:09:00 222

空空如也

空空如也

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

TA关注的人

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