自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 stm32重定向输出串口方法

重定向输出

2023-12-07 14:02:55 449

原创 strncpy字符循环右(左)移简单C实现

循环右(左)移

2023-11-26 23:03:08 392

原创 bug:gcc编译器警报warning: ‘xxx’ is used uninitialized in this function [-Wuninitialized]

gcc编译器警报warning: ‘xxx’ is used uninitialized in this function [-Wuninitialized]

2023-11-17 16:13:38 1033

原创 动态增加链表节点以及如何查找单链表倒数第几个节点

此时的慢指针正好移动到第n个节点的位置,然后将慢指针返回即可获得第n个节点的信息,画个图就好理解了。可以定义一个快指针,一个慢指针分别指向链表的头结点,然后快指针先向后移动。直到快指针走到最后一个节点时。个节点,然后再与慢指针。

2023-10-14 17:05:38 86

原创 stm32使用DHT温湿度无法正常输出串口遇到的BUG

在调试的时候我想在 DHT11_Start(void)这个函数里面检测一下dht11是否能够正常响应主机发送的信号,如果模块可以响应并且改变电平我就通过重定义打印一些字符来提示dht11该模块存在,后续完整代码没有删掉这个调试信息,结果发现dht根本发送不完40位的数据,发一半就没了然后一直卡在函数当中,然后把调试信息删除后就正常了,估计是printf这一行为在函数发送信号时占用了资源,导致时序错误引起。/*保存模块发送的40位数据*/

2023-09-06 17:00:55 120

原创 tar解压tgz后缀文件tar: Unexpected EOF in archivetar: Unexpected EOF in archivetar: Error is not recovera报错

有时候缓存的文件可能导致问题。可以尝试删除原本有问题的安装包和相关解压错误的文件后再清除wget的缓存,然后重新下载文件。解决方法:重新下载tgz文件,并确保不删除任何与配置相关的文件夹。然后再次运行解压缩命令即可。2:或者是配置文件时删除了相关文件夹,然后再次尝试解压缩已删除的文件夹,可能会导致出现"1:可能是因为压缩文件不完整或损坏。xxx(要下载的文件名)

2023-07-11 18:46:44 4829

原创 修改vim的缩进格式

修改vi编辑器缩进格式

2023-07-06 22:24:59 205 1

原创 解决Linux下ls无法看到文件类型颜色

ls使文件类型颜色显现

2023-07-02 20:43:36 328 1

原创 共享文件夹在虚拟机下的路径

rf:将xxx目录以及子目录和文件全部复制到当前工作目录中,并且不在询问用户直接覆盖同名文件或目录。若想复制共享文件夹下的文件到某一路径,以当前工作目录为例命令为。share:为用户创建的共享文件夹。xxx:是共享文件夹下的某个文件。在虚拟机下的共享文件夹路径为。

2023-05-15 23:09:57 7246

原创 Linux下gcc编译时后面的-i、-I、-L之间的指令区别

库文件为静态库.a或动态库.so文件,如如-L ./。,如果是静态库,要加上“-static”。(小写L):-I 后跟。

2023-05-15 23:03:00 1399

原创 STM32:外部中断的使用

GPIO的模式看情况来配置,这里我需要GPIOA1来做振动传感器的输出端,不震动输出高电平,震动输出低电平,所以这里选择的是下拉输入,配置好之后再对各自的内容进行初始化就完成了外部中断的c文件相关的代码。1、使用GPIOA1来作为外部中断源时,需要定义3个结构体,分别是:GPIO、外部中断、中断优先级控制相关。2、GPIOA1既是作为输入,也作为外部中断源,需要打开GPIOA的时钟以及GPIO的复用时钟。中断控制部分的结构体在stm32固件库的 中断相关的.h文件找到。

2022-11-23 02:11:20 1316

原创 STM32:震动传感器点亮LED寄存器配置

GPIO口的简单配置

2022-11-22 00:06:41 515

原创 Linux:用strstr修改程序文件内容

demo:下面的代码是当打开一个文件读取数据后通过strstr定位到某一段落对段落后面的内容进行修改,然后重新写回该文件当中去。在haystack字符串中找haystack的重复部分needle,然后返回一个从needle前一个字符开始的指针。

2022-11-15 23:06:33 114

原创 Linux代码实现cp指令效果

形如:如果该c文件名为cp.c,若存在一个文件叫text.c那么运行程序时可以写成。打开或创建的文件如果本身是有内容的话且内如大于被复制文件可能会造成。用参数的形式运行程序,argc是参数数量,argy是三个参数名。:当只读或只写成功打开文件会把文件原本的内容清理掉。所以argv就是一个指针数组。,所以open新文件时加上。

2022-11-15 15:09:43 143

原创 51单片机的串口通信关于串口配置

定时器1配置成8位自动重装载,在溢出时把TH1提前设置好的值自动装入TL1,效率高,平时使用定时器时用的是16位定时器,TH1和TL1全用,每一次定时都要软件置位,所以用8位自动重装载,即M1、M0为1、0。PCON:他的第8位是SMOD波特率选择位,配置串口通信方式1、2、3的波特率倍数,选择不加倍,即第8位为0,其他部分暂时用不上默认就好所以让PCON直接与上0111 1111。SCON:同样是8位的寄存器,他的第8位SM0和第7位SM1用来选择串口工作模式,PCON写成:PCON &= 0x7F。

2022-11-14 15:12:53 2189

原创 Linux学习:对文件的创建及读取操作

执行命令后路径下多了一个叫file1的文件打开内容是write写入的buf,但是打印的read的字节数和内容全部丢失,出现一个bug,出现这个bug是因为在write数据到新创建的文件的时候,文件的光标停留在了最后一位,之后read的数据都是从光标位置开始的,光标之后没有内容所以没有任何数据。运行结果与上方一致,如果用的不是文件头的位置,用的是结尾或者当前位置的话,需要往前偏移,则第二个参数偏移值为负数就可以往前偏移,正数时往后偏移。返回读取到的字节数,什么都读取不到返回0,失败返回-1。

2022-11-07 16:08:41 489

原创 Linux网络编程:通过socket编程实现两个服务器之间的信息自由收发(类似微信聊天)

当有用户连接时就fork()让子进程不停的做读取客户端数据的动作,同时也要能够随时的发送数据,所以需要再fork()一个子进程来单独做发送这件事。对于发送部分的子进程来说读取数据部分就是父进程,对读取部分来说accept等待接收用户部分是父进程

2022-11-06 23:25:14 1847

原创 Linux进程:父子进程

程序是静态的概念,例如gcc xxx.c -o pro,磁盘生成的pro文件可以理解为程序,当pro运行起来系统就有了一个进程,区别是动态与静态之间的区别,进程就是程序跑起来的概念每个进程有一个非负整数表示自己的唯一ID,叫pidpid = 0;是交换进程。作用:进程调度pid = 1;init进程。作用进程初始化,相当于开机启动运行的第一个程序getpid()可以获取程序自身的pid号getppid()可以获取父进程的pid号。

2022-11-06 00:56:45 826

原创 IIC通讯协议理解及部分代码的设置

IIC全称集成电路总线),属于两线式串行总线,用于连接微控制器及一些外设,属于半双工同步通信方式(只能接收信号不能返回)

2022-11-02 01:46:31 552

原创 Linux学习:socket网络编程建立服务端与客户端的信息交互通道

常用的数据收发除了用read()函数和write()函数之外还可以用send()和recv()区别只是多了一个判断是否阻塞的参数。为实际的地址,编程时使用的是sockaddr_in结构体中的第三个参数的地址即:定义结构体叫struct sockaddr_in。1、创建套接字socket(),(为后续网络的操作提供一个网络描述符)为结构体的变量名则该API的第二参数可以写为。2、为套接字添加信息(IP和端口号)4、监听到有客户接入,接受一个连接。地址上传到网路能识别的格式需要用。6、关闭套接字断开连接。

2022-10-28 23:11:58 913

原创 01网络编程:字节序

指多字数据在计算机内存中存储或者网络传输时各字节的存储顺序。

2022-10-28 00:37:44 66

原创 Linux学习:SOCKET网络编程有什么用?

在linux下的进程间通信方式有管道、消息队列、共享内存、信号、信号量。他们都是依赖linux内核来进行数据的传输,只能在同一个IP地址下进行传输无法实现多机通信传输,而网络编程可以实现多机通信。

2022-10-27 23:37:48 169

原创 4G模块 EC03-DNC的常用AT指令操作及模块访问内网方法

进入AT指令模式:确认好接线及硬件连接后打开串口助手,不换行发送+++到串口,3秒内随意发送一条AT指令后完全进入AT指令模式(后续指令都要发送新行)。确认信号强度:AT+CSQ。显示+OK=26表示信号强度正常,99则为信号异常。修改波特率:默认波特率是115200,AT+UART可以查看当前波特率,发送AT+UART=9600,NONE,NONE是没有奇偶校验位,9600是修改波特率为9600,需重启模块后修改成功。重启模块:AT+REBT,关闭串口重新打开,需要重新进入AT指令模式

2022-10-25 23:45:34 1862

原创 linux下使用函数write()和read()对文件写入及读取

linux下使用函数write()和read()对文件写入及读取

2022-09-08 14:52:41 1447 1

原创 Linux下对文件的打开及操作方式

使用open()来对文件进行打开创建操作

2022-09-08 12:27:51 859

空空如也

空空如也

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

TA关注的人

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