西邮小菜机
码龄5年
关注
提问 私信
  • 博客:250,998
    社区:27
    问答:112
    动态:128
    251,265
    总访问量
  • 68
    原创
  • 2,173,975
    排名
  • 1,956
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2020-01-16
博客简介:

weixin_46199479的博客

查看详细资料
个人成就
  • 获得393次点赞
  • 内容获得163次评论
  • 获得1,957次收藏
  • 代码片获得2,435次分享
创作历程
  • 47篇
    2022年
  • 21篇
    2021年
成就勋章
TA的专栏
  • BootLoader
    4篇
  • linux
    24篇
  • 存储
    5篇
  • stm32
    12篇
  • C语言
    20篇
  • 网络编程
    1篇
  • Linux驱动开发
    7篇
  • ucos
    4篇
  • 数学建模
    1篇
兴趣领域 设置
  • 嵌入式
    单片机stm32iot
  • 操作系统
    linux
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 帖子
  • 收藏
搜TA的内容
搜索 取消

正点原子stm32spi配置代码

发布资源 2023.06.25 ·
zip

C语言中的位段操作—嵌入式学习(实习篇)

位段的用法
原创
发布博客 2022.05.16 ·
682 阅读 ·
4 点赞 ·
1 评论 ·
3 收藏

linux进程的内存与ELF文件

提到进程的内存就是虚拟内存。1G的内核区域、3G的用户区域,提到进程的内存就是下面这个图,都可以用它进行分析。虚拟内存是为了实现多任务,所以操作系统才引入了它。new是一个关键字,他运行时先创建一个类,底层再调用malloc函数申请相应大小的内存,而malloc是一个函数,申请内存时需要我们告诉其需要内存的大小,malloc底层调用的是brk系统调用。malloc其实是系统给分配的一个虚拟内存。申请内存不释放内存会导致内存泄漏,解决内存泄漏可以先判断内存泄漏是什么引起了,是内存池还是非内存池导致的,后面可以
原创
发布博客 2022.05.08 ·
1361 阅读 ·
6 点赞 ·
1 评论 ·
9 收藏

stm32c8t+正点原子wifi+MAX30102+LD3320+onenet上云,帮学长做的一个毕设。加qq可以白嫖。

发布资源 2022.05.08 ·
zip

linux内存机制原理---分页、分段底层原理

自我总结:分段+分页+虚拟内存=现代操作系统的内存管理机制。一、linux的内存分布内核与高速缓冲区占用了前1MB内存,后面15MB属于主存,可以由用户自由分配。四种地址:虚拟地址、线性地址、逻辑地址、物理地址。虚拟地址:虚拟地址中具体地址是逻辑地址,每个进程分配的空间。逻辑地址:程序员可以看到的地址,linux操作系统分配给每个进程的独立地址,每个进程认为自己的空间都有连续的64MB。线性地址:总线地址CPU采用分段的机制(线性地址=逻辑地址+段基地址)。物理地址:CPU总线的
原创
发布博客 2022.05.06 ·
880 阅读 ·
3 点赞 ·
1 评论 ·
1 收藏

正点原子esp8266+mini(rct)板/c8t6上onenet云服务器

提供一个wifi上云的代码,可以直接使用正点原子的esp8266wifi模块上onenet云平台,代码需要修改的地方我会指出来,并且上传数据的代码也会标明。具体操作可以加我qq2947993454,帮助你解决问题。下面都是需要添加和修改的文件源码。main函数中只需要采集完后添加这两行就可以成功上传了。OneNet_SendData();ESP8266_Clear();一、修改uasrt.h/.c文件重新配置uart1并且配置好uart2用来控制wifi,修改后printf函数就不
原创
发布博客 2022.05.02 ·
1765 阅读 ·
6 点赞 ·
3 评论 ·
31 收藏

unix网络编程——网络基础

网络编程基础
原创
发布博客 2022.05.02 ·
1123 阅读 ·
3 点赞 ·
1 评论 ·
1 收藏

UART串口通信常用协议对比——rs232、485的区别

一、RS232:uart常用的一个协议,uart其实只是一个设备,而协议则是规定在传输时他的传输规则,232协议简单常用的一种协议,接受端和发送端的rxd与txd相连,这样就可以完成传输。因为每端都有rxd、txd所以他是全双工通信,但是他的有效传输距离较短。必须使用特定设备才可以与uart相连传输。只能一对一的进行通信。二、RS485:RS-485的数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。是半双工通信,但是解决了re232通信距离短的问题
原创
发布博客 2022.04.28 ·
3862 阅读 ·
6 点赞 ·
0 评论 ·
14 收藏

四针OLED驱动代码——IIC驱动

在使用IIC驱动四针OLED时只需要添加以下几部分代码即可,之后就可以快乐的使用OLED显示数据了。一、oled.c#include "oled.h"#include "stdlib.h"#include "oledfont.h" #include "delay.h"void IIC_Start1(){ OLED_SCLK_Set() ; OLED_SDIN_Set(); OLED_SDIN_Clr(); OLED_SCLK_Clr();}/************
原创
发布博客 2022.04.27 ·
5569 阅读 ·
18 点赞 ·
7 评论 ·
93 收藏

嵌入式软件面试高频基础——C语言

一、构造函数与析构函数用法与区别构造函数:是一种特殊的方法,一个类也可以有很多构造函数,可以根据其参数不同或者参数类型不同来区分,也就是重载。可以为对象成员赋初始值。常常与new运算符一起使用在创建对象的语句中。析构函数:对象所在的函数已调用完后,系统自动调用析构函数。进行清理善后工作。二、内联函数和宏定义区别1、内联函数和普通函数相比可以加快程序的运行速度,因为不需要进行函数切换,在编译时内联函数可以直接被镶嵌到目标代码中,而宏只是一个简单的替换,在预处理阶段被换到主函数中。2、内联函
原创
发布博客 2022.04.26 ·
2004 阅读 ·
6 点赞 ·
4 评论 ·
19 收藏

USB学习笔记——USB通信过程与枚举过程

在网上看到一篇文章就是讲这个的,仔细阅读后获得了很多感触,整理总结如下。一、USB接口在USB的集线器端D-,D+都接了下拉电阻,而USB设备端的D-,D+接了上拉电阻,所以当USB设备插入时可以根据集线器端D-,D+上的电压变化来判断是否有USB设备接入。检测到有设备接入后,可以根据D-,D+来判断USB设备的工作模式,是低速还是全速或者高速。所以D-,D+这两根线很重要。二、 USB数据传输过程主机与USB设备相互传输数据具体过程如下:1、客户软件首先将传输的数据放入缓冲
原创
发布博客 2022.04.10 ·
3809 阅读 ·
3 点赞 ·
0 评论 ·
19 收藏

USB学习笔记——认识USB

简单了解USB的一些知识,为后续USB开发打基础。
原创
发布博客 2022.04.10 ·
8491 阅读 ·
3 点赞 ·
0 评论 ·
49 收藏

大家帮我看看,keil5花括号里面什么也不加可以编译出来,花括号里面随便加一个就会显示targe not created

答:

你看看keil里面的设置对不对,实在不行另下一个吧

回答问题 2022.03.30

结构体大小计算以及sizeof与strlen的区别

内存对齐这个知识点面试问的几率特别高,赶紧学一下吧,书到用时方恨少!!!一、结构体求大小这里主要还是联合体求大小,应为结构体大小在前面已经记录过了,本质还是内存对齐。联合体如何求占用内存大小:1.找到占用字节最多的成员; 2.union的字节数必须是占用字节最多的成员的字节的倍数,而且需要能够容纳其他的成员。typedef union { long i; int k[5]; char c;}D其中占用字节最大的数据类型是long,但是这里还有整型的数
原创
发布博客 2022.03.29 ·
730 阅读 ·
3 点赞 ·
2 评论 ·
0 收藏

linux中有名管道与匿名管道的实现

一、匿名管道多用于父进程与子进程之间的通信,用到的频率很高,挺重要的。定义一个大小为2的数组、使用pipe函数将其变为匿名管道的两端,fd[0]:代表读端、fd[1]:代表写端。子进程和父进程根据功能分别关闭读或写端。当然是使用read和write函数来对管道的数据进行读写,下面这个函数的功能就是父进程给子进程传输hello world,子进程读后把字符串发送到标准输出上。如下图可以看到结果是正确的。使用完都关掉、养成好习惯。int pipe(int filedes[2]);..
原创
发布博客 2022.03.28 ·
749 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

linux C-文件API介绍与使用

文件的基础操作,通俗易懂。
原创
发布博客 2022.03.27 ·
871 阅读 ·
1 点赞 ·
2 评论 ·
0 收藏

努力学习,好好打球

发布动态 2022.03.26

linux多线程——互斥量实现同步

静态初始化互斥量,也可以调用函数动态初始化。使用到的函数有pthread_mutex_lock,给资源上锁,和mutex_unlock,给资源解锁,可以实现同步访问,避免竞争。#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<pthread.h>pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;void *func(voi.
原创
发布博客 2022.03.26 ·
828 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

linux多线程——基础知识+实现

在Linux中利用C语言实现多线程。利用函数pthread_create()、pthread_exit()、pthread_join()。一、pthread_create()#include <pthread.h>int pthread_create( pthread_t *restrict tidp, //新创建的线程指向的内存单元。 const pthread_attr_t *restrict attr,
原创
发布博客 2022.03.26 ·
2232 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

虚拟内存与写时复制

一、什么是虚拟内存:之前记录了虚拟内存如何映射到物理内存的方式(内存管理方式):分段和分页。但是这两个策略都有相同的目标,就是同时将多个进程保存在内存中,以便允许多道程序。然而,这些策略都倾向于要求每个进程在执行之前应完全处于内存中。而虚拟内存技术则可以允许内存不必完全处于内存,就是执行的指令应处于物理内存中。二、虚拟内存的优点:运行的程序可以远大于物理地址,使我们不必担忧内存容量的限制,它实现的原理就是局部性原理。给每个进程都分配一个4G的看似连续的虚拟内存空间。方便内存共享,文件共享
原创
发布博客 2022.03.25 ·
523 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏
加载更多