自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux进程通信——进程间的五种通信方式——管道、FIFO

管道 (包括无名管道和命名管道) 、消息队列、信号量、共享存储、Socket、Streams。

2024-06-25 14:29:37 665

原创 Linux进程——system函数、popen函数

函数定义函数说明https://www.cnblogs.com/leijiangtao/p/4051387.html 与execl不同的是,system还会返回原代码文件中继续执行函数定义函数说明command: 是一个指向以 NULL 结束的 shell 命令字符串的指针。这行命令将被传到 bin/sh 并使用 -c 标志,shell 将执行这个命令。 type: 只能是读或者写中的一种。如果 type 是 “r” 则文件指针连接到 command 的标准输出;

2024-06-08 20:14:38 514

原创 LINUX进程——执行文件——exec族函数

然后再调用execl,用execl 找到并执行echoarg,将当前进程main替换成进程echoarg,就会执行ehcoarg里面的代码,所以”after execl” 没有在终端被打印出来。不会执行if中的代码。只有当输入的值为1时,才会创建子进程并使用execl函数找到并执行changeData可执行文件,从而将原配置文件config中“leng=1”改成“leng=5”。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变。exec函数族的函数执行成功后不会返回,调用失败时,

2024-06-08 19:03:34 621

原创 Linux进程——进程退出

线程。

2024-06-03 09:40:53 943

原创 Linux进程——vfork函数

若调用fork(),则父子进程的变量是子进程copy父进程的,即父进程的count为0,此时的子进程计算完的count未与父进程共享地址;当调用vfork()时:由于当子进程调用exit退出后,父进程才执行。父进程的地址空间,即子进程计算完count的值又传回给了父进程,count就为3。保证子进程先运行,当子进程调用exit退出后,父进程才执行。vfork() 函数和 fork() 函数一样都是。父进程的所有数据,子进程是父进程的地址空间。,但它们创建的子进程是有区别的。在已有的进程中创建一个新的进程。

2024-06-01 17:11:28 429

原创 Linux进程——创建进程fork

父进程与子进程​ 创建新进程的那个进程称为父进程,新进程称为子进程。使用fork()函数创建子进程。fork()函数能创建一个与调用进程几乎完全相同的子进程,包括代码、数据段、堆栈以及当前工作目录、用户ID和组ID等环境变量fork()fork()fork()可以用于判断当前进程是父进程还是子进程子进程的返回值是0父进程的返回值则是新子进程的进程PID。

2024-05-26 20:26:59 320

原创 Linux进程——基本知识

程序:程序是已经创建好的进程,此时并未进行运行,例如xxx.c文件,表现为静态。windows存储在硬盘中的可执行文件Linux代码文件的编译但未运行,如gcc xxx.c -o pro;编译后的的pro文件进程:进程是正在运行的程序实例。进程是程序的一次运行活动,意思是程序跑起来了,系统中就多了一个进程。例如在Linux调用的a.out文件A.进程标识符与文件标识符fd类似:每一个进程都有一个非负整数标志的唯一ID,叫做pid,类似于身份证。PID是程序被操作系统加载到内存成为进程后。

2024-05-25 20:54:32 600

原创 Linux文件操作——标准c库对文件操作

指向。

2024-05-25 15:03:38 759

原创 Linux文件操作——其他类型数据写到文件并读取

可见一开始结构体data2中没有数据,通过调用两个函数后将结构体data1的值赋给结构体data2,实现了。那么我们可以写入一个整型变量并读取,也可以写入一个结构体并读取,甚至写入一个结构体数组并读取。是由于在Linux底下的编码不同,故会显示乱码。不过经程序编译是正确的,就可以了。可见data2原先值为0,但通过编译后,data2的值为100,实现了。其中无论是写入(write)还是读取(read)函数,其。由前面章节可知,对文件的操作都是基于。,前面我们是直接写入字符串名字,因为。

2024-05-24 01:54:29 352

原创 Linux文件操作——实现cp指令以及模拟修改配置文件

cp 1.c 2.c功能是将(内容相同,实现拷贝)main函数的参数由编译结果可知,总共有三个输入参数,同时输出每个参数字符串内容。

2024-05-23 18:28:57 369

原创 Linux文件操作——打开及创建

1.pathname:指向文件的路径2.modemode是文件的创建模式,这里与open函数的mode有区别,这里的创建模式为系统自带。可执行:S_IXUSR可写:S_IWUSRL可读:S_IRUSR可读、可写、可执行:S_IRWXU。

2024-05-21 23:22:54 997

原创 Linux文件操作——写入与读取以及光标移动

int fd:fd为创建文件的文件描述符const void *buf:这里为无类型的指针,通常对他进行强转成字符串:buf为要写入的字节size_f count:写入字节的长度(使用strlen而不是使用sizeof计算字节长度)sizeof类型sizeof是一个编译时运算符,不是一个函数。功能:它返回的是变量、数据类型或表达式的大小,以字节为单位。这包括了任何内部的填充字节和结束符(如果有的话)。计算时机:其值在编译时期就被确定,因此不需要运行时计算。应用实例。

2024-05-21 17:16:50 882

原创 VMware连接网络

什么是桥接模式?桥接模式就是将主机网卡与虑拟机虑拟的网卡利用进行通信。在桥接的作用下,类似于把虑拟为一个,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相与。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机。是当前VMware虚拟机经常使用的一种模式,但也有不足之处,主要是每台虚拟机需要独立配置,例如DNS(解析域名),会出现有的上得了网,有的上不了,同时比较。

2024-05-15 01:07:09 879

原创 Ubuntu环境搭建与共享文件

然后依次执行以下指令net-tools-y安装完重启虚拟机生效。如果不能托拉文件进虚拟机,那就算了,咱们用共享文件夹。先把虚拟机关机。

2024-05-15 00:33:37 972

原创 VMware17.5与Ubuntu22.04虚拟机环境搭建

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

2024-05-15 00:08:00 446

原创 FreeRTOS中断管理

更加详情请看以上链接↑任何中断的优先级都大于任务!在我们的操作系统,中断同样是具有优先级的,并且我们也可以设置它的优先级,但是他的优先级并不是从0~15,默认情况下它是从5~150~4这5个中断优先级不是FreeRTOS控制的(5是取决于 configMAX_SYSCALL_INTERRUPT_PRIORITY1.在中断中必需使用中断相关的函数;2.中断服务函数运行时间越短越好。

2024-05-13 12:48:28 339

原创 延时函数与软件定时器

简单可以理解为闹钟,到达指定一段时间后,就会响铃。STM32芯片自带硬件定时器,精度较高,达到定时时间后会触发中断,也可以生成PWM、输入捕获、输出比较,等等,功能强大,但是由于硬件的限制,个数有限。软件定时器也可以实现定时功能,达到定时时间后可调用回调函数,可以在回调函数里处理信息。

2024-05-13 12:01:58 812

原创 FreeRTOS任务通知

FreeRTOS从版本V8.2.0开始提供任务通知这个功能,每个任务都有一个32位的通知值。按照 FreeRTOS 官方的说法,使用消息通知比通过二进制信号量方式解除阻塞任务快45%, 并且更加省内存(无需创建队列)。在大多数情况下,任务通知可以替代二值信号量、计数信号量、事件标志组,可以替代长度为 1的队列(可以保存一个32位整数或指针值),并且任务通知速度更快、使用的RAM更少!

2024-05-12 16:47:50 919

原创 FreeRTOS事件组

表明某个事件是否发生,联想:全局变量flag。通常按位表示,每一个位表示一个事件(高8位不算)

2024-05-11 21:19:32 935

原创 二值信号量、计数型信号量与互斥量

信号量(Semaphore),是在多任务环境下使用的一种机制,是可以用来保证两个或多个关键代码段不被并发调用。信号量这个名字,我们可以把它拆分来看,信号可以起到通知信号的作用,然后我们的量还可以用来表示资源的数量,

2024-05-11 11:20:40 544

原创 FreeRTOS消息队列

队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息。为什么不使用全局变量?如果使用全局变量,兔子(任务1)修改了变量a,等待树獭(任务3)处理,但树獭处理速度很慢,在处理数据的过程中,狐狸(任务2)有可能又修改了变量a,导致树獭有可能得到的不是正确的数据。在这种情况下,就可以使用队列。兔子和狐狸产生的数据放在流水线上,树獭可以慢慢一个个依次处理。关于队列的几个名词:

2024-05-09 00:53:31 514

原创 FreeRTOS任务详解

任务句柄是一个指向任务控制块(TCB)的指针,用于引用和管理任务。

2024-05-07 00:55:51 998

原创 FreeRTOS 初识

Q:什么是 FreeRTOS?A: Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。RTOS不是指某一个确定的系统而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX, RT-Thread等这些都是RTOS类操作系统。

2024-05-01 22:48:28 848

原创 测速显示小车

相关硬件参考以下文章即可测速模块:不能接5V,否则遮挡一次会触发3次中断SCL -- PB6SDA -- PB7。

2024-05-01 01:00:20 278

原创 循迹/跟随/摇头避障小车

所以通道4是一个20ms周期的PWM,用于给SG90驱动用的。在CubeMx配置,并重定义,在main.h会自动生成。PSC设置为7199做100us级别的,arr设置为200。在CubeMx配置,并重定义,在main.h会自动生成。由于不知道具体接收是否,故使用串口进行打印输出。实现效果和89C52时一样,所以不重复展示了。TIM2仅做定时器用,设置为1us级别的。打开各自的串口和TIM2和TiM4。TIM4的通道4做PWM输出,

2024-04-27 19:58:22 893

原创 串口调速小车1

由于不知道电机是否驱动而有无PWM输出。则在PA0和PA1接入两个LED灯分别实验,代替电机调速。可以在这修改(重定义)GPIO口名称,相应的在main.h文件中修改。时钟树HSE、PLLCLK打开,HCLK设置成72MHz。编写只有一个通道被打开,分开编写之后两个通道才都被打开。打开timer的PWM输出通道。PSC和ARR设置详情此文章。

2024-04-26 01:35:07 390

原创 温湿度LCD显示并上传服务器

温湿度传感器 DHT11。

2024-04-21 15:31:12 878

原创 SPI 和W25Q128(使用SPI通讯读写W25Q128模块)

SPI是的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200SPI 包含 4 条总线,分别为。拉低。

2024-04-17 22:48:22 935

原创 IIC和OLED再认识

51是由于芯片功能不齐全,以至于需要软件编写IIC而STM32芯片足够将IIC配置在硬件当中以至于直接读写即可忘记了可回顾51的16.IIC 协议 和 OLED_oled,iic通信波特率-CSDN博客参数一:I2C_HandleTypeDef *hi2c,I2C设备句柄参数二:uint16_t DevAddress,目标器件的地址,七位地址必须左对齐参数三:uint16_t MemAddress,目标器件的目标寄存器地址参数四:uint16_t MemAddSize,

2024-04-16 20:51:51 541

原创 ADC的认识

烟雾传感器:烟雾传感器的AO和DO分别代表模拟信号和数字信号,由于现在学习的ADC(模数转换),所以将AO引脚接入单片机,而不使用DO引脚。那么AO应该接在哪里呢?在STM32中,两路ADC的同一通道使用的同一个引脚在这个实验中,将AO接入单片机的PA0,对应ADC1或2的通道0。

2024-04-14 03:25:56 928

原创 DMA的认识

DMA(Direct Memory Access,直接存储器访问提供在。

2024-04-13 02:35:01 905

原创 窗口看门狗WWDG

窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口寄存器数值之前,如果7位的递减计数器数值在控制寄存器中被刷新, 那么也将产生一个MCU复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。软件异常。

2024-04-11 23:33:21 981

原创 独立看门狗 IWDG

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog)。独立看门狗工作在主程序之外,能够完全独立工作,它的时钟是专用的低速时钟(LSI),由VDD (

2024-04-11 20:37:43 726

原创 stm32与esp8266WIFI模块

WIFI模块ESP-01S使用控制。

2024-04-08 23:43:46 823

原创 使用STM32实现 蓝牙插座

蓝牙模块,又叫做蓝牙串口模块串口透传技术:透传即透明传送,是指在数据的传输过程中,通过无线的方式这组数据不发生任何形式的改变,仿佛传输过程是透明的一样,同时保证传输的质量,原封不动地到了最终接收者手里以太网,蓝牙,Zigbee, GPRS 等模块玩法一样,对嵌入式程序员来说,不需要关心通讯模块内部数据及协议栈工作原理,只要通过串口编程获得数据即可。

2024-04-07 22:16:12 419

原创 串口和 蓝牙模块HC08

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。接口。其特点是通信线路简 单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢是设备间接线通信的一种方式数据一位一位地顺序传送双向通信,全双工传送速度相对较慢。

2024-04-07 22:14:36 657

原创 STM32串口认识

串口发送数据,使用超时管理机制(即在发送成功前一直阻塞,相当于有个delay()在卡住主函数;串口接收数据,使用超时管理机制;串口中断模式发送;串口中断模式接收作用:以阻塞的方式发送指定字节的数据*huart串口的编号(结构体类型指针变量)uint8_t*pData指向要发送的数据地址uint16_tSize:要发送的数据大小,以字节为单位uint32_tTimeout设置的超时时间,以ms为单位作用:以中断的方式接收指定字节的数据*huart串口的编号。

2024-04-04 01:45:45 983

原创 stm32再实现感应开关盖垃圾桶

PWM波的频率不能太高,大约50HZ,即周期=1/频率20ms左右。sg90舵机PWM波的频率不能太高,大约50HZ,即周期=1/频率20ms左右。角度控制PWM的有效电平为高电平度;2.5%对应函数中CCRx为5,对应函数中占空比为5%度;5.0%对应函数中CCRx为10,对应函数中占空比为10%度;7.5%对应函数中CCRx为15,对应函数中占空比为15%度;10.0%对应函数中CCRx为20,对应函数中占空比为20%度;

2024-03-30 13:36:13 813

原创 stm32使用定时器实现PWM与呼吸灯

高级定时器(TIM1):7路通用定时器(TIM2~TIM4):各4路例如定时器2。

2024-03-24 02:08:54 1439

原创 stm32定时器

缺点:不精确、占用CPU资源还记得以前在开发C51的时候,经常使用stc_nop_();i = 4;j = 129;k = 119;dodo定时器工作原理:使用精准的时基,通过硬件的方式,实现定时功能。定时器核心就是计数器。

2024-03-22 01:51:49 600

空空如也

空空如也

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

TA关注的人

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