自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言编译和预处理

_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。语法:我们可以定义的符号实际上十分的多样化1000register//为 register这个关键字,创建一个简短的名字for;;//用更形象的符号来替换一种实现break;case//在写case语句的时候自动把 break写上。

2024-05-04 20:36:10 1059

原创 C语言文件操作

磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境 后缀为.exe)。文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件, 或者输出内容的文件。在以前所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。

2024-04-29 22:35:39 625

原创 C语言—柔性数组

C99 中,结构中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员。

2024-04-28 16:33:22 510 1

原创 动态内存管理

这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己 来决定。如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器。int main()//动态内存开辟return 1;//异常返回//使用int i = 0;

2024-04-28 16:32:17 1027

原创 结构体枚举、联合、位段

enum Day//星期Mon,Tues,Wed,Thur,Fri,Sat,Sunenum Sex//性别MALE,FEMALE,SECRETenum Color//颜色RED,GREEN,BLUE以上定义的enum Dayenum Sexenum Color都是枚举类型。{}中的内容是枚举类型的可能取值,也叫枚举常量。这些可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。enum Color//颜色RED=1,GREEN=2,

2024-04-28 16:28:09 320

原创 结构体与结构体内存对齐

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

2024-04-28 16:26:21 381

原创 深度剖析图像处理—边缘检测

数字图像处理,bmp图像的边缘检测,图像边缘增强和边缘分割的基础,深度剖析各种算子和实现方法,内附实例讲解个人心得,文末附源码,希望对您有所帮助

2024-04-22 21:48:35 2249 5

原创 深入剖析图像平滑与噪声滤波

深入探究图像的平滑与滤波,总结各种滤波方法和代码实现,万字详解,数字图像处理基础,文末附源码,希望可以为您提供帮助

2024-04-20 22:19:36 2171 3

原创 深入探究图像增强(C语言实现)

数字图像处理基础,图像的增强与图像平滑,文章讲解的实现方法在文末均附源码

2024-04-19 22:35:46 1174

原创 深度剖析bmp图像读入输出的方式

深度剖析BMP图像的读入和输出,图像数字处理最重要的工作,文末附源码

2024-04-18 23:35:47 1131 2

原创 C语言—常用字符串函数剖析

这个函数是什么意思呢,在C语言的函数库中,函数执行出现异常会自动返回错误码,而这个错误码会自动存储在全局变量。这个变量中,这个变量是C语言自动创建的,而strerror就可以去解读这个错误码。当然是不可以的,字符串内容被修改,无法找到\0,程序会死循环。可以减小我们程序出现问题的可能,大家有兴趣可以下去查一下。这个函数在数据结构中好像有过讲解,以后会写文章详细讲解。因为返回的是无符号整型,那么怎么能出来负数呢?大家思考一下,这个程序的运行结果是什么?返回错误码,所对应的错误信息。这个函数就比较有意思了。

2024-04-18 13:26:11 793

原创 C语言—深度剖析函数指针,函数指针数组

我们先来看一段代码输出的是两个地址,这两个地址是 test 函数的地址。那我们的函数的地址要想保存起来,怎么保存?首先,能给存储地址,就要求pfun1或者pfun2是指针,那哪个是指针?答案是:pfun1可以存放。pfun1先和*结合,说明pfun1是指针,指针指向的是一个函数,指向的函数无参 数,返回值类型为void。

2024-04-17 22:37:54 339

原创 C语言—字符指针,指针数组和数组指针详解

数组指针是指针?还是数组?答案是:指针。我们已经熟悉: 整形指针: int * pint;能够指向整形数据的指针。浮点型指针: float * pf;能够指向浮点型数据的指针。那数组指针应该是:能够指向数组的指针。下面代码哪个是数组指针?//p1, p2分别是什么?//解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。//这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。

2024-04-16 15:57:57 521

原创 C语言—深度剖析数据在内存中的存储

计算机存储的方式主要有两种,分别是定点数和浮点数那存储的内存就那么多,怎么样才能存储更多的位数呢?科学家们就很聪明,通过科学计数法来创造了浮点数的存储好,说了那么多,感兴趣了了解一下就行那么需要我们记住的是,定点数存储的范围小,但是精确;浮点数存储的范围更大,但是不精确。

2024-04-16 15:53:33 1212

原创 C语言结构体

有了结构体类型,那如何定义变量,其实很简单int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化。

2024-04-11 17:12:32 288

原创 C语言指针—二级指针和指针数组

指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?那么指针变量也是变量,那么pa在内存空间中应该也有地址pa的地址中存放了a的地址ppa中存放的是pa的地址那么我们该如何解引用呢那么我们再来详细解释一下注意不能理解为存放地址的地址。

2024-04-10 18:15:05 346

原创 C语言指针—野指针、指针运算、指针与数组

允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与 指向第一个元素之前的那个内存位置的指针进行比较。既然可以把数组名当成地址存放到一个指针中,我们使用指针来访问一个就成为可能。但是,数组就是数组,指针就是指针,二者不能混为一谈。那这样我们就可以很简单的计算出字符串长度。这个代码之前写过,但是是不是还能简化一下。**注意:**不是所有的指针都能相减。指向同一块空间的指针相减才会有意义。我们来看下面的式子的运算结果。:是一个变量,存放的是数组。:一组相同类型的元素集合。

2024-04-09 20:50:52 389

原创 C语言指针—指针和指针类型

那我们就可以这样理解:内存指针变量我们可以通过&(取地址操作符)取出变量的内存其实地址,把地址可以存放到一个变量中,这个 变量就是指针变量。

2024-04-08 18:28:48 528

原创 基于ARM内核的智能手环全流程开发(万字详解,文末附源码)

基于STM32开发的智能手环,从零开始记录项目十天开发的全流程,全流程跟进记录开发stm32的心得和一些笔记

2024-04-07 20:23:26 2190

原创 基于ARM内核的智能手环(day8)

零基础项目全部流程记录,基于ARM内核的智能手环,使用STM32进行开发。DAY8,学习MPU6050计步以及心率模块的使用,项目全流程开发学习结束,项目结果功能展示,文末附项目完整源码

2024-04-07 20:13:10 419

原创 基于ARM内核的智能手环(day7)

零基础项目全部流程记录,基于ARM内核的智能手环,使用STM32进行开发。DAY7,RTC时钟的学习和表盘的绘制,文末附源码

2024-04-07 19:37:12 351

原创 基于ARM内核的智能手环(day6)

零基础项目全部流程记录,基于ARM内核的智能手环,使用STM32进行开发。DAY6,模拟量传感器(光照传感器、空气质量传感器)的配置和使用,文末附源码

2024-04-07 19:22:10 1174 1

原创 基于ARM内核的智能手环(day5)

零基础项目全部流程记录,基于ARM内核的智能手环,使用STM32进行开发。DAY5,如何查看传感器产品手册以及通过时序获取传感器数值相关内容,文末附源码

2024-03-31 20:21:47 1102 1

原创 基于ARM内核的智能手环(day4)

零基础项目全部流程记录,基于ARM内核的智能手环,使用STM32进行开发。DAY4,学习串口通信和lcd屏幕显示相关内容

2024-03-31 19:37:52 843

原创 基于ARM内核的智能手环(day3)

零基础项目全部流程记录,基于ARM内核的智能手环,使用STM32进行开发。DAY3,学习中断函数和时间片轮询相关内容,学习串口通信的RS232协议相关内容,文末附源码

2024-03-31 19:14:23 1252

原创 基于ARM内核的智能手环(day2)

零基础项目全部流程记录,基于ARM内核的智能手环,使用STM32进行开发。DAY2,记录按键控制与非阻塞以及STM32寄存器来控制led灯状态反转

2024-03-31 18:10:30 1148

原创 基于ARM内核的智能手环(day1)

零基础项目全部流程记录,基于ARM内核的智能手环,使用STM32进行开发

2024-03-30 20:53:16 1433

原创 操作符详解(C语言)—最终章

到这里为止,C语言的操作符就全部介绍完了,马上就开启指针的学习!

2024-03-23 22:30:02 1285

原创 操作符详解(C语言)—第三期

所以,表达式中各种长度可能小于int长度的整型值,都必须先转 换为int或unsigned int,然后才能送入CPU去执行运算。表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度 一般就是int的字节长度,同时也是CPU的通用寄存器的长度。实例2中的,c只要参与表达式运算,就会发生整形提升,表达式 +c ,就会发生提升,所以 sizeof(+c) 是4个字节.因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长 度。

2024-03-22 22:43:18 789

原创 操作符(C语言)—第二期

赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。关于sizeof其实我们之前已经见过了,可以求变量(类型)所占空间的大小。这些运算符都可以写成复合的效果。

2024-03-21 22:51:52 274

原创 操作符详解(C语言)—算数操作符,移位操作符,位操作符

一道小面试题:如何交换两个变量的值,不能使用第三个变量,即a=3,b=5,交换后a=5,b=3?

2024-03-20 18:18:44 883

原创 C语言实战—三子棋游戏

纯C语言实现,完整的小游戏开发思维和流程,相信跟着一起做一遍一定会对您的全局思维和项目开发思路有一定启发,同时也是对C语言编程能力的一次很好练习

2024-03-19 21:09:07 710

原创 C语言数组—二维数组

从零开始深度理解二维数组,内附实战算法帮助理解数组作为函数参数所应该注意的问题,当数组以形参传到函数内部时,是无法计算元素个数的

2024-03-18 22:51:21 795

原创 C语言数组—一维数组

很简单,一组数就是数组我们已经完成了函数部分知识的学习,那么接下来,我们将会进入数组部分的学习数组部分的主要有那么话不多说,我们先来看一维数组。

2024-03-17 23:34:22 273

原创 C语言函数—递归理解和练习

相信看完这篇文章,你一定会对递归有一定的认识和理解,练习一定是掌握知识的最好渠道,一起来试试吧!

2024-03-15 22:05:49 726

原创 C语言函数—递归

程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接 调用自身的 一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解, 递归策略 只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小写一个简单的递归函数看看什么效果int main()main();return 0;运行结果。

2024-03-14 23:08:52 486

原创 C语言函数—关于静态库

如果我们成为了库的开发者,要卖给别人C语言库,该怎么办呢?

2024-03-13 22:28:00 1036

原创 C语言函数—函数的嵌套调用、链式访问、声明和定义

告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数 声明决定不了。函数的声明一般出现在函数的使用之前。要满足先声明后使用。函数的声明一般要放在头文件中的。int b = 20;//函数声明一下 - 告知return 0;//函数的定义因为代码是从上往下运行的,所以把函数放在主函数的前面就不用声明了定义是一种更强有力的声明函数的定义是指函数的具体实现,交待函数的功能实现。project.h的内容。

2024-03-13 17:44:59 398

原创 C语言函数—自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。

2024-03-13 17:07:28 303

原创 C语言函数—库函数

在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),www.cplusplus.com http://en.cppreference.com(英文版)看看我们最熟悉的stdio头文件所定义的函数,每一个函数都解释的很详细。,提供对过程的封装和细节的隐藏。但是你了解C语言中的函数吗?这就是C语言中的函数,a,b为输入,c 为输出。

2024-03-12 13:18:00 422

STM32技术参考手册中文

《STM32技术参考手册》是STMicroelectronics发布的针对其STM32系列微控制器的详尽技术文档,包含了有关STM32微控制器的完整技术规格、功能描述、寄存器设置、外设特性以及应用示例等内容。这份手册对于开发人员在设计和开发基于STM32微控制器的应用程序时提供了重要的参考信息。 目前,STMicroelectronics官方网站上可以获取到最新版本的《STM32技术参考手册》,其中也包括了中文版本的翻译。通过查阅该手册,开发人员可以全面了解所选用的STM32微控制器的技术细节,帮助他们更好地进行硬件设计、软件开发以及系统集成工作。 在实际开发过程中,建议开发人员在使用STM32微控制器时参考官方发布的技术参考手册,以便详细了解微控制器的功能和特性,确保项目顺利进行并充分发挥STM32微控制器的性能优势。

2024-03-26

STM32固件库使用手册的中文翻译版

《STM32固件库使用手册》是针对ST公司的STM32系列微控制器的固件库进行详细介绍的官方文档。该手册包含了丰富的信息,包括库函数的介绍、应用示例、配置方法等,帮助开发人员更好地使用STM32系列微控制器进行软件开发。

2024-03-26

空空如也

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

TA关注的人

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