自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【基于STM32CUBEMX STM32F411CEY6TR单片机实现串口DMA的收发】

如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。主要是重写了一个回调函数 USAR_UART_IDLECallback,新增一个函数处理接收到的数据。声明回调函数和发送函数,并将接收数据的数组外接出来。

2023-03-31 18:12:14 435 1

原创 如何使用STM32开发板做一个自动感应垃圾桶

使用STM32开发板做一个感应垃圾桶

2020-12-12 15:15:23 1705 4

原创 关于STM8S001J学习过程记录

关于STM8学习记录过程第一 编译环境的安装我选择的IAR软件,这个软件需要破解,所以需要注册机激活,过程的话百度上百度IAR破解安装,第一个就是百度知道就是。步骤还是比较简单易懂的,我唯一的碰到的问题是,注册机激活的时候,类型没有选择对,所以导致ActivationInfo这个文件激活失败,没有一个回应文件。这个问题的原因是它默认的是ARM,后面选项里面有STM8的,我们需要选择这个后,它才能激活成功。第二 工程的建立工程的建立:1.要建立一个workspace。选择菜单File->New

2020-09-22 16:39:02 877

原创 2020年,做嵌入式开发工程师还能找到工作吗?20届应届生的一些应聘经历

**1.做嵌入式开发工程师是否好找到工作?就今年疫情情况来说**从今年疫情期间,的确很多公司受到了影响,不管是生产还是销售都会有相应的影响,不开工,代表不能盈利。我是20届应届生,对这个深有体会,去年秋招的时候薪资待遇都会比6月7月去找的薪资待遇会高不少,可能是秋招比较缺人,这时候已经饱满了,也有一大部分的原因是因为公司受到影响了,这些面试的时候HR也会稍微提及。也由于一些员工隔离或者不能及时去上班,所以岗位还是有的,没有说一个岗位都没有,在那些求职APP上,一搜也有很多嵌入式开发工程师的岗位。但是

2020-08-05 22:06:38 3038 1

原创 基于Wemos的感应垃圾桶

基于Wemos的感应垃圾桶一 实现的功能和器件一个垃圾桶(这边垃圾桶是)、Wemos开发板、超声波模块、一个舵机实现的功能:能感应到手靠近,或者物体靠近,小于十厘米的时候就会打开垃圾桶。二 舵机和超声波初始化舵机的初始化在一开始需要定义Servo mySg;定义这个在setup里面初始化端口,就能调用write函数来控制舵机的角度。2. 超声波的初始化我们需要定义Echo和Trig端口的INPUT和OUTOUT;也需要定义一个时间函数来测量距离。代码以及注释#include

2020-06-20 16:04:33 389 4

原创 基于Wemos的WiFi避障小车

基于Wemos的WiFi避障小车一 所用到的器件Wemos开发板、一个电机、超声波模块、一个玩具车(大致是这样,有点丑。)功能和思路功能:这小车能通过载入的安卓系统APP的前进后退左转右转,这个APP跟小车在同一个网段里。思路:我们把玩具车改装成能够使用WIFI控制的话,那我们需要在Arduino上配置WiFi的设置还有初始化WiFi模块。电机和Womos开发板的串口D4D5D6D7也要初始化。介绍一下Arduino运行的模式void setup() { // put your s

2020-06-19 17:29:57 586 1

原创 linux网络编程的服务端和客户端实战的基本实现

网络编程的服务端和客户端实战的基本实现1.编写服务端和客户端基本流程图2. 服务端代码实现和解析1)服务端的流程代码实现一般分为六个流程1 socket,套接字我们要创建套接字,为套接字添加信息socket()我们一般使用的AF_INET IPV4因特网域,在国内一般是使用AF_INET,TYPE参数一般也是使用TCP协议的SOCK_STREAM s_fd = socket(AF_INET,SOCK_STREAM,0);套接字输入信息 s_addr.sin_f

2020-06-10 17:31:34 321

原创 linux网络编程里的字节序

网络编程里的字节序字节序的概述字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。字节序的常见序Little endian(LE):将低序字节存储在起始地址小端字节序比如有一个数0x01020304,我们起始地点是4000,存的是04,4001存的是03,4002存的是02,4003存的是01Big endian(BE):将高序字节存储在起始地址大端字节序比如有一个数0x01020304,我们起始地点是4000,存的是01,4001存的是02,4002存的是03,4003

2020-06-08 15:29:24 97

原创 Linux网络编程的一些概述

Linux网络编程的一些概述linux系统要实现网络通信,就得需要地址和数据,地址是IP地址和端口号。端口号的作用一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等。这些服务完全通过一个IP地址来实现,那么主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。端口提供了一种访问通道,服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的T

2020-06-06 17:52:21 125

原创 linux线程互斥锁的小实战和互斥锁死锁

linux线程互斥锁的小实战互斥锁的使用在多个线程里,如何让一个线程里的代码运行完,在轮到另外一个线程执行,而不是多个线程互相竞争的关系。我们就可以使用到互斥锁的概念,这样的话,在一个线程执行上锁操作的时候,其他线程就会在等待,等待钥匙,等拿到钥匙以后,继续上锁,就能把这个线程里的代码执行完毕。#include <stdio.h>#include <pthread.h>#include <unistd.h>int data = 0;pthread_mutex

2020-06-06 16:29:48 149

原创 LINUX线程的知识和共享内存的小实战

LINUX线程的知识和共享内存的小实战一 进程与线程的关系典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。线程是操作系统能够进行运

2020-06-06 14:30:41 208

原创 信号量的一些实战思路和代码

信号量的一些实战思路和代码一 信号量的一些概念和理解首先我们要先知道什么是临界资源。多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用。一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如输入机、打印机、磁带机等。因为我们IPC进程间的通信,都是能够数据的交互。但是信号量却不能数据的交互。他的作用类似于钥匙和锁的关系。临界资源一次只能供一个进程使用,就相当于一个房间里,只能有一个人使用,信号量就是一把钥匙,有人拿钥匙进去房间里,其他进程想进去就得在房

2020-06-05 12:08:49 116

原创 IPC进程间的通信(下篇)共享内存和信号量

共享内存共享内存的简单调用一般是键值的创建shmget函数创建共享内存空间shmat函数获取第一个可用共享内存空间的地址shmdt函数进行分离(对共享存储段操作结束时的步骤,并不是从系统中删除共享内存和结构)shmctl函数进行删除共享存储空间我们就可以根据这五个步骤简单的编写一个写入的代码和读取的代码。写入的代码: 1 #include <sys/ipc.h> 2 #include <sys/shm.h> 3 #include <stdio.h

2020-06-04 17:52:15 120

原创 IPC进程间的通信(上篇)

IPC进程间的通信(上篇)进程间的通信主要的五种方式:管道(无名管道),有名管道,消息队列,信号量和共享内存五种。这篇文章先介绍前面三种管道。1 管道(无名管道)特点:1 它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。2 它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。3 它可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write 等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。因此,我们在使用管道的时候

2020-06-04 10:44:06 146

原创 进程的退出方式

进程的退出方式第一种 正常退出main函数调用return函数进程调用exit(),标准C库进程调用_exit()和 _Exit(),属于系统的调用进程最后一个线程返回最后一个线程调用pthread_exit第二种 异常退出调用abort当进程收到某些信号时,如ctrl+c最后一个线程对取消(cancellation)请求做出响应...

2020-06-04 10:12:58 206

原创 fork函数和vfork函数的区别

fork函数和vfork函数的区别vfork也可以创建进程,那和fork有什么区别呢1 第一个区别是,vfork直接使用父进程的存储空间,不拷贝2 第二个区别是,vfork保证子进程先进行,等到子进程调用函数exit函数退出后,父进程才进行。...

2020-05-29 14:27:28 102

原创 父子进程的概念即创建进程函数fork的一些代码

父子进程的概念即创建进程函数fork的一些代码1 父子进程的概念进程A中,创造了B进程,那么A就是父进程,B就是子进程。例如int main(){ pid_t pid; pid = fork(); if(pid>0){ printf("this is father pid = %d\n",pid); } else if(pid == 0){ printf("this is child pid = %d\n",pid); } return 0;}这里我们使用了fork函

2020-05-29 11:58:59 519

原创 进程和程序的一点小笔记(区分进程和程序)

1 进程和程序的区别程序是静态的概念,gcc xxx.c -pro,磁盘生成pro文件,叫做程序。进程类似于动态的概念,我们在桌上面的QQ呀WE GAME呀,都是程序,当我们双击运行起来后,就是一个个的进程。2 怎么查看进程在linux中,我们一般使用命令 ps -aux来查看进程,但是这个有一个缺陷是这行命令显示的是所有的进程,如果我们只想看我们想要查看的进程,可以进行筛选,就可以用到命令 ps -aux|grep xxx 这样就能筛选出我们想要的进程。3 什么是进程标识符每一个进程都有一个非

2020-05-28 18:22:26 107

原创 修改或者写入到文件中的数值 字符型 整数型 结构体

1 修改目标文件的值 字符型例如HIGH =10LONG =5我们想改变LONG =5的值,将其改成1.思路:首先我们先创建一个文件,将语句输入,然后编写代码,程序里是打开目标文件,查找目标字符串,将指针移动到替换字符上,在将其替换。 1 #include <stdio.h> 2 #include <sys/types.h> 3 #include <sys/stat.h> 4 #include <fcntl.h> 5 #incl

2020-05-28 16:49:02 173

原创 文件编程里如何编程自己的CP指令

文件编程里如何编程自己的CP指令1 编译这个cp指令的思路1)我们得打开源文件2)将源文件读入到我们设置的参数上,如readBuf3) 打开目的文件4)将源文件读取的内容readBuf写入到目的文件5)关闭源文件和目的文件2 main 的参数main 函数中我们需要设置参数,来传入我们复制的源文件和目的文件 int main(int argc,char **argv)例如我们编译完以后,可以敲入命令**./a.out demo1.c demo2.c**其中./a,out 是运行程

2020-05-28 10:44:06 197

原创 在程序中写入和读取文件

在程序中写入和读取文件read 和 write函数的头文件以及API格式read 函数#include <unistd.h> ssize_t read(int fd, void *buf, size_t count);read 函数中fd 是文件标志符,是open函数的返回值,第二个是无整型数的地址,第三个是读取的个数。write函数#include <unistd.h> ssize_t write(int fd, const void

2020-05-27 15:56:02 417

原创 在LINUX里打开和创建文件

在LINUX里打开和创建文件1 open函数的头文件以及格式在linux里面 输入 man 2 open函数就能得到 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);2 open参

2020-05-27 14:29:01 228

STM32F411串口DMA收发

基于stm32cubemx 完成STM32F411串口DMA收发

2023-03-31

空空如也

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

TA关注的人

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