自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何实现 MCU软件中多个模块初始化函数的优雅调用

上面的代码中每增加一个模块都需要包含对应的头文件,在main函数中也要修改初始化的代码,去掉一个模块也是这样的,增加了软件的耦合度,无疑不是明智的,下面就来探索下怎么自动的实现模块的初始化,在不修改main函数的代码的前提下,同时优雅的初始化模块。我们知道,函数名本身就是一个地址,用指针指向这个地址时,调用这个指针去运行这段代码就可以了,而我们把函数放在这个段中,我们是可以获取段的起始和终止地址的,有了这些条件,就能把段中的每个函数都遍历运行一遍了。接手了这样的代码后怎么更快的确认函数的调用关系呢?

2023-06-14 10:35:53 607

原创 环形缓冲区RingBuff的代码实现

~今天我们一起来聊一下环形缓冲区RingBuff又叫LoopBuff等等,都是相同的东西,只是一个名字不同罢了。~我们在编写代码的时候缓冲区是几乎每个代码都必不可少的东西,比如存放串口接收的数据、做Modbus通讯、和一些模块通讯等等都会用到缓冲区,简单的来写的话往往就是开辟一个buffer,把接收到的数据保存在这个buffer中,然后再去解析这个buffer的数据。 以串口和GPS通讯为例,我们常常使用串口接收中断接收GPS的数据包,把接收到的数据保存在RecBuff中,然后再去申明一个函数去解析这个数

2021-12-06 11:23:15 1106

原创 Linux中的offsetof/container_of宏

offsetof宏/*计算结构体成员在结构体中的偏移量*/#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0) -> MEMBER)offsetof宏作用用于计算结构体成员在结构体中的偏移量offsetof宏原理TYPE : 结构体的类型MEMBER : 结构体成员使用结构体类型定义一个指针并指向结构体成员,表示该地址从0开始到结构体成员地址的偏移,即可计算出偏移量。container_of宏/

2021-10-09 11:17:48 184

原创 VS Code不识别C标准库函数,已解决

VS Code不识别C标准库函数,且无法运行C程序​ 问题:​ 1、#include “stdio.h” VS Code提示没有改文件的路径,无法识别,下面有一条红色的波浪线。​ 2、很多人在刚安装完VS Code不知道怎么去运行一个Hello World!程序。写好程序后编译出错。本文将让您快速的完成Hello World代码的编译与运行,同时解决了VS Code无法识别C标准库函数的问题。解决方法:​ 1、安装Mingw-64​ MinGW,是Minimalist GNU*

2021-09-17 10:06:33 5464 2

空空如也

空空如也

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

TA关注的人

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