自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 15765-2 协议解读

ISO15765-2 标准主要内容是Transport protocol and network layer services,即传输层和网络层的服务,根据ISO7层模型,此层的下一层级是数据链路层和物理层,上一个层级是会话层和应用层。其存在的目的是为了解决ISO 11898协议中定义的经典CAN数据链路层与ISO14229协议中定义的应用层,彼此之间数据长度不统一的问题。经典CAN数据链路层最大能够支持8个字节,但ISO 14229并不仅仅是为了CAN总线设计的,最大容量达到4095个字节。

2023-04-07 15:12:11 658

原创 归并排序 - 排序链表

归并排序 - 排序链表

2022-12-23 11:41:56 970

原创 MFI认证

MFI认证

2022-09-16 19:49:17 478

原创 ascii码二进制十进制十六进制对照表

2021-08-02 17:13:55 6622 2

原创 C语言 32位 和 64位数 之间 位数 的加减乘除运算

#ifndef __INC_PUBLHEAD_H__ #define __INC_PUBLHEAD_H__//-----------------------------------------------------------------------------#include <stdio.h>#include "PublType.h"//-------------...

2020-04-20 14:58:00 2797 1

原创 C语言 - 日期计算器

#include "stdio.h"const UAuto16 day_of_month[2][13] = {{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}, {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366}};typedef st...

2020-04-20 14:47:27 906

原创 asterisk -安装、配置 (Linux)

一、获取asterisk安装包 1. sudo apt-get install wget (如果有可以忽略这一步) 2. wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-17-current.tar.gz( 目前最新版本为17.1.0) 想要其他版本可以去 https://downl...

2020-03-05 10:37:48 2828 1

原创 asterisk - 通过中继拨出(呼出路由配置)

前情提要:假定本机IP为:192.168.2.133注册中继的IP为:192.168.2.113注册账号:1999注册密码:Aa111111pjsip.conf[trunk-registered](!)type=registrationretry_interval=60[trunk-auth](!)type=authauth_type=userpass[trunk-ao...

2020-03-05 10:29:02 1594

原创 asterisk - 实现内部分机互打 (实现DND功能和截答)

设置DND :74取消DND:074截答:04+分机号pjsip.conf[transport-udp]type=transportprotocol=udpbind=0.0.0.0[endpoint_internal](!)type=endpointcontext=from-internaldisallow=allallow=ulawtrust_id_outbound=...

2020-03-05 10:20:49 682 2

原创 shell 脚本 - 实现 mysql的增删改查

#! /bin/bashdbuser="root"export MYSQL_PWD=123456username="username"password="password"tel="tel"email="email"wechat="wechat"judge_cmd() { if [ "$1" != "-add" ] && [ "$1" != "-updat...

2020-01-16 15:50:48 215

原创 Linux下 配置boa

1.源码解压$ tar -xf boa-0.94.13.tar2.安装工具$ sudo apt-get install bison$ sudo apt-get install flex3.环境搭建修改文件src/compat.h:把这行 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff修改为 #define TIMEZONE_O...

2019-12-25 16:51:34 366 7

原创 Android - Handler 的简单应用

简单来说,Handler就是子进程用来向主线程传递消息的。Handler可以当成子线程与主线程的消息传送的纽带。在安卓开发中,在子线程中无法刷新UI,是因为UI在子线程中刷新的话,是不安全的,就比如多个线程刷新UI,会造成UI更新冲突,这样是不安全的。所以,Handler的作用就来了,子线程可以通过Handler来将UI更新操作切换到主线程中执行。结合之前发的socket客户端例子来简单理解...

2019-10-04 16:23:07 154

原创 Android - WebView

记得 要先给权限能够访问网络 在AndroidManifest.xml 中加入 MainActivity.javapackage com.example.webview;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;...

2019-10-03 18:19:18 248

原创 Android - SocketApp客户端开发

大致思路封装一个类来与服务端进行连接这个类要用线程来实现多个连接主函数根据View 的id来判断具体命令来执行相应操作activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.c...

2019-10-03 18:11:57 287

原创 java - Socket 实现简单通信

大致思路:服务端创建服务端, 调用ServerSocket 初始化端口号 - 创建服务器accpet() 等待连接,做出对应读写操作 客户端1.连接到服务端的端口号2.做出对应读写操作服务端import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import ja...

2019-10-02 16:47:31 180

原创 stm32 -IIC(读写EEPROM)

IIC简介IIC(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。总的来说,就是IIC是通过SDA数据线和SCL时钟线来进行数据传输的接下来就结合时序图更方...

2019-09-19 21:16:49 1173

原创 stm32f103 串口通讯

串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单 便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 stm32f103 串口通讯大致可以分为这五步 1.初始化gpio口,使能RX和TX引脚GPIO时钟 2.初始化USART,和USART时钟; 3.初始化nvic 总中断 4.编写字符串发送函...

2019-09-18 20:28:35 2224

原创 stm32f103 -SysTick系统定时器

SysTick简介:SysTick—系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器 是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置 系统时钟SYSCLK等于72M。当重装载数值寄存器的值递减到0的时候,系统定时器就产生一次中断,以此循环往复。SysTick寄存器介绍SysTick—系统定时器有4个寄存器,简要介绍如下。在使用S...

2019-09-17 20:28:19 650

原创 64位环境下,各个类型所占字节数 、int、char和字符串比较

2019-09-10 15:18:13 760

原创 自己制作树莓派镜像文件

一般我们都是考官网的镜像文件来用,这次自己手动在Linux上把镜像文件完善。前期准备:1.拷贝2019-07-10-raspbian-buster-lite.img到虚拟机的/work目录下2.拷贝linux-4.18-source.tar.bz2到虚拟机 的/work目录下3.解压文件 tar -xf linux-4.18-source.tar.bz2 到虚拟机 的/work目录下(/...

2019-09-05 15:43:08 1853

原创 智能垃圾桶 Linux和树莓派-网络编程(总结)

前期准备:1.OLED液晶显示模块2.L9110马达驱动模块3.HC-SR04超声波模块4.SG90舵机驱动模块5.DS18B20温度检测模块6.树莓派3B模块原理:OLED液晶显示屏:液晶显示是点阵显示,就是一个一个的点显示在屏幕上,靠这些点的亮灭组合来完成我们想要的目标。1.那么我们 要想显示就得先创建一个用来初始化屏幕的数组。2.我们创建一个能显示内容在屏幕上的数...

2019-08-31 16:46:54 878

原创 自己写strcpy函数

char *mystrcpy(char *dst,char *src){ //1. char *str=dst; while(*src!='\0') { //2. *str++=*src++; } //3. str='\0'; return str;}

2019-08-27 21:14:40 2238

原创 Linux - 建立动态库

用个简单例子来举例。sum.c里封装着sum函数用来计算俩数之和,main.c去调用这个动态库。//1.建立动态库book@book-virtual-machine:~/0826$gcc sum.c -shared -fPIC -libsum.so(Linux命名规范-lib+文件名.so .so就是动态库的意思)//2.编译book@book-virtual-machine:~/08...

2019-08-26 16:24:20 149

原创 HC-SR04超声波测距 - 树莓派3B

一、前期准备单片机:STC89C52RC开发环境:树莓派3BHC-SR04模块:淘宝有售基本工作原理:(1)采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(...

2019-08-26 15:02:50 435

原创 基于Linux 下建立的简单FTP 协议

FTP协议:简单来讲就是文本传输协议实现功能:1.能够进入指定文件路径 -cd2.能够查看服务器文件目录 -ls3.能够上传文件至服务器 -put4.能够从服务器下载文件 -get5.能够查看之前对文件的操作 -hist6.账号密码 验证 7. - quit退出 核心思想:我们要完成上述功能,大致就分为几步。1.客户端发送指令给服务端2.服务端接受指令完...

2019-08-18 12:39:03 225

原创 Linux-信号量配合父子进程的简单使用

在Linux中,进程间通信大致分为5类(依赖于内核)1. 无名管道2. 命名管道3. 消息队列4. 共享内存5. 信号6. 信号量1.无名管道:用于父子进程或者兄弟进程间函数原型:popen(char *command,char *mode);int pipec(int fd[2]); //fd[0]代表读 fd[1]代表写 command: 要执行的代码操作 mode: 只...

2019-08-16 09:25:05 1119

原创 exec族函数、system函数和popen函数应用

exec族函数:首先 ,先man exec 查看下exec函数原型 #include <unistd.h> extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char...

2019-08-07 18:02:09 308

原创 给main传参、调用(Linux环境)

main函数原型:int main(int argc ,char *argv[]);既然有参数 我们就可以传参、调用。在linux环境下我们一般运行程序是./a.out或者说 ls -l而argc是int型,保存的就是我们运行程序输入命令的个数。而argv是char *型,保存的就是我们每个输入的命令。举个例子用 gcc 编译 ./a.out 运行int main(int ar...

2019-08-07 16:58:31 962 2

原创 将文件内容写入链表 --再把链表写回文件(Linux环境下)

这几天学了文件处理相关的知识,这里用这个例子来结合理解链表和文件处理。要求:程序运行起来,检测是否存在目标文件,如果存在,读取文件内容,并保存在链表中,再一 一输出,输出结束问是否要更新文件,支持数据修改,数据添加(这里我用的学生成绩管理系统)。如果不存在,手动输入,用链表保存到文件中。实现思路:首先,我先假设这个文件的形式是以学号、姓名、成绩占据每行。就是这样的:1zhangsan...

2019-08-07 16:45:18 2172

原创 Linux下基于ncurses的贪吃蛇

这里是基于nucrses库的贪吃蛇所以下面先解释下nucrses库中的一些函数:printw(): 就是printf函数 使用基本一样,不同的是:printw()函数把字符串输出到“stdscr”的虚拟窗口initscr():这个函数初始化了curses 系统并且为当前屏幕(也就是“stdscr”)和相关的数据结构分配内存。endwin():endwin()函数释放了curses 子系统...

2019-07-31 18:37:37 605

原创 esp8266通过串口实现pc端的控制

1.前提介绍:#include"reg52.h"#include"UART_INIT.h"void initESP8266(){ delay(1000); send("AT+CWMODE_DEF=1\r\n"); delay(1000); send("AT+CWJAP_DEF=\"gcc-tech\",\"18650711783\"\r\n"); delay(5000)...

2019-07-29 00:09:09 1717

原创 HC-SR04超声波测距 -c52单片机

一、前期准备单片机:STC89C52RC开发环境:keil4HC-SR04模块:淘宝有售**基本工作原理**:(1)采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号; (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回; (3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=...

2019-07-26 17:53:45 2024 6

原创 07-23 链表的创建、删除和插入

链表就是把不相干的n个数据变的有联系起来。就是通过地址把他们头尾相连,连成一个链表。也可以看做c语言的面向对象。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。一般我们定义链表有俩种方式,一个是给头节点的,一个是不给的。我们会定义head、tail和new...

2019-07-24 23:15:28 206

原创 07-24 什么是串口

串行接口(Serial port)又称“串口”,也称串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口。1. 其功能呢,通俗点讲就是用一根数据线就可以实现通信。 2. 距离呢,几米到几千米,距离和传输速度成反比就是了。 3. 工作方式分3种,单工、半双工、全双工。区别呢,通俗点讲(哈哈,通俗易懂就行,范文可以网上查)单工: 就是对着哑巴打电话,你根本不知道他有没...

2019-07-24 22:43:43 951

原创 07-24 c51串口-数据发送、数据接收

#include"reg52.h"void delay(){ int i; int j; for(i=0;i<100;i++) for(j=0;j<100;j++);}void initDate(){ SCON=0x50;//数据位8位,停止位1位,起始位1位 //波特率设置 TMOD=0x20; TH1=0xFD; TL1=0xFD; TR1=1;...

2019-07-24 22:05:39 2542

原创 07-15 vim使用、以及clang-format的安装

我们在虚拟机下的linux进行编程的时候,会觉得没有在eclipse、vs等编译器上方便。那么今天 我就分享俩个方法能稍微缓解一点压力。第一种:你可以把虚拟机上面的共享文件夹选项打开和windons共享可以点击虚拟机 -> 设置 ,设置共享文件夹。第二种 用vim编译、clang-format格式化代码、gdb运行调错。首先我们去ubuntu software center 去...

2019-07-24 17:20:42 1017

原创 07-11 冒泡排序、选择排序

排序算法有很多,这里就对最简单的俩种冒泡和选择排序总结下自己的理解1.冒泡排序:冒泡排序就是把相邻的俩个数进行对比,得出相对大的数继续向后面对比,一圈下来得到最大(最小)的数放在数组最右(左),然后继续把剩下的数用同样的道理对比得出数组大小排序后的结果。代码如下:for (int i = 0; i < strlen(a)-1; i++){for (int j =0; j<t...

2019-07-11 11:16:43 264

原创 0710 - scanf 的用法

scanf的用法小结scanf 的使用看似细节繁杂,但使用起来非常简单。就目前而言,只要掌握以下五点:在 scanf 的“输入参数”中,变量前面的取地址符&不要忘记。scanf 中双引号内,除了“输入控制符”外什么都不要写。“输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。“输入控制符”的类型和变量所定义的类型一定要一致。对于从键盘输入的数据的类型,数...

2019-07-10 11:35:05 263

空空如也

空空如也

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

TA关注的人

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