- 博客(42)
- 收藏
- 关注
原创 深入解析 IIC:嵌入式系统中最常用的通信协议
IIC通信协议,也称为I2C(Inter-Integrated Circuit),是一种简单、高效、多主多从的双向二线制同步串行总线,由Philips公司(现NXP)于1980年代开发,广泛应用于嵌入式系统中连接各种低速外围设备。主要用于近距离、低速的芯片(如传感器、存储器、显示屏等)之间的通信。串行数据线(SDA):用于传输数据的双向线路。串行时钟线(SCL):由主设备产生,用于同步数据传输。这种协议支持多主多从架构,多主设备(多个微控制器或主控制器)和多从设备(外部设备)的连接。
2025-02-28 16:01:36
1870
原创 C语言的数据:变量、常量、数据类型及其使用
C 语言作为经典编程语言,数据类型是其基础核心。本文深入剖析 C 语言各类数据类型,涵盖 int 整型、float 与 double 浮点型、char 字符型及特殊的 void 类型。详细介绍各类型定义、内存占用、取值范围、声明初始化及实际应用场景,搭配代码示例辅助理解。旨在帮助初学者扎实掌握 C 语言数据类型知识,为后续编程学习筑牢根基。
2025-02-27 08:00:00
2512
1
原创 提高程序可读性的技巧:编写清晰易懂的C语言代码
提高程序可读性是编写高质量代码的关键。通过使用有意义的命名、添加注释、保持代码简洁、合理使用空格和缩进、避免魔法数字以及使用枚举和结构体,你可以显著提升代码的可读性和可维护性。希望本文的技巧和示例能够帮助你编写出更清晰、更易读的C语言代码!
2025-02-26 12:00:00
1008
原创 编程机制:从底层解读计算机如何执行代码
编程机制是计算机执行代码的核心过程,涵盖了从代码翻译到硬件操作的多个环节。通过理解编译器与解释器、内存管理、CPU执行指令以及操作系统交互,我们可以更好地掌握程序的运行原理,编写出高效、可靠的代码。
2025-02-26 08:00:00
695
原创 使用C语言的7个步骤:从定义目标到维护代码
在编写程序之前,首先要明确程序的目标。你需要清楚地知道程序要解决什么问题,实现什么功能,以及输入和输出是什么。示例:假设我们要编写一个程序,计算两个整数的和并输出结果。编写C语言程序是一个系统的过程,涵盖了从定义目标到维护代码的多个步骤。通过明确目标、设计程序、编写代码、编译、运行、测试和调试,以及维护和修改代码,你可以逐步完成一个高质量的C语言程序。
2025-02-25 12:00:00
1557
原创 C语言标准:从K&R到C23,全面解析C标准的演进与应用
C语言标准的每一次更新都带来了新的特性和改进,使得C语言能够适应不断变化的编程需求。从K&R C到C23,C语言经历了从非正式标准到现代化编程语言的演进过程。无论是操作系统、嵌入式系统,还是高性能计算,C语言都以其高效性、底层控制能力和广泛的应用领域,继续在计算机科学领域占据重要地位。
2025-02-25 08:00:00
666
原创 选择C语言的理由:为什么C语言仍然是编程世界的基石?
高性能:C语言直接生成机器码,执行效率高。底层控制:C语言允许直接操作内存和硬件资源。可移植性:C语言程序可以在多种平台上编译和运行。简洁的语法:C语言的语法简单明了,易于学习和使用。广泛的应用领域:从操作系统到嵌入式系统,C语言无处不在。尽管现代编程语言层出不穷,C语言仍然以其高效性、底层控制能力和广泛的应用领域屹立不倒。
2025-02-24 12:00:00
1077
1
原创 C语言的起源:从诞生到影响深远
C语言自诞生以来,凭借其简洁、高效和可移植的特性,迅速成为计算机科学领域的重要工具。它不仅推动了UNIX操作系统的发展,还对现代编程语言产生了深远的影响。尽管如今有许多新兴的编程语言,但C语言仍然在操作系统、嵌入式系统和高性能计算等领域发挥着不可替代的作用。
2025-02-24 08:00:00
562
原创 WDT看门狗定时器:嵌入式系统的守护者
在嵌入式系统中,稳定性和可靠性至关重要。然而,现实世界中存在着各种干扰和异常,可能导致程序跑飞、陷入死循环,甚至系统崩溃。为了应对这些挑战,WDT看门狗定时器应运而生,成为嵌入式系统的忠实守护者。一、WDT:默默无闻的守护者WDT,全称Watchdog Timer,即看门狗定时器,是一种独立的硬件计时器。它如同一位默默无闻的守护者,时刻监控着系统的运行状态。当系统正常运行时,WDT静静地计时,等待着被“喂食”;一旦系统出现异常,无法及时“喂食”,WDT就会“发怒”,触发系统复位,使系统恢复正常运行。
2025-02-15 14:14:11
1275
原创 C语言6大常用标准库--6.<ctype>
C 标准库的ctype.h头文件提供了一些函数,可用于测试和转换字符,这些函数主要用于检查字符的类型(如字母、数字、空白字符等)以及进行字符大小写转换。提供了一组方便的函数,用于处理字符的分类和转换操作,是 C 标准库中处理字符操作的重要工具。
2024-10-02 09:00:00
1363
原创 C语言常用标准库 -- 5.<time.h>
头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。是 C 标准库中的一个头文件,提供了处理和操作日期和时间的函数和类型。这个头文件中的函数用于获取当前时间、设置时间、格式化时间和计算时间差等。通过理解和使用提供的函数,可以方便地进行时间和日期的操作,从而编写更加功能丰富和高效的 C 程序。
2024-10-01 09:00:00
1191
原创 C语言6大常用标准库 -- 4.<math.h>
math.h头文件定义了各种数学函数和一个宏。在这个库中所有可用的功能都带有一个double类型的参数,且都返回double类型的结果。 是 C 标准库中的一个头文件,包含了大量用于数学运算的函数和宏。这些函数和宏提供了基本的算术运算、三角函数、指数函数、对数函数、幂函数、舍入函数等。 提供了一系列的数学函数和常量,帮助程序员在 C 语言中进行各种数学计算。通过使用这些函数和常量,可以轻松实现复杂的数学运算,从而提高程序的效率和可读性
2024-09-18 12:00:00
2290
原创 C语言6大常用标准库 -- 3.<string.h>
string .h头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。是 C 标准库中的一个头文件,提供了一组用于处理字符串和内存块的函数。这些函数涵盖了字符串复制、连接、比较、搜索和内存操作等。通过理解和使用提供的函数,可以方便地进行字符串和内存操作,编写更加高效和可靠的 C 程序。
2024-09-17 09:03:51
1095
原创 C语言6大常用标准库 -- 2.<stdlib.h>
是标准的库函数,包含内存分配、程序控制、转换函数等,如 malloc、free、exit、atoi、rand 等。通过理解和使用 提供的函数,可以在 C 程序中进行内存管理、进程控制、随机数生成、环境管理、数学转换以及排序和搜索等操作,从而编写更加灵活和功能丰富的程序。
2024-09-16 21:38:35
1544
原创 C语言6大常用标准库 -- 1.<stdio.h>
提供了用于输入和输出操作的函数,如printf(格式化输出)、scanf(格式化输入)、getchar(从标准输入读取一个字符)、putchar(向标准输出写入一个字符)等。
2024-08-31 13:17:13
1623
原创 SPI通信协议
SPI(Serial Peripheral Interface),全称是“串行外围接口”,是由Motorola公司推出的一种高速全双工同步的串行的总线协议。SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4跟线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、SS/CS(片选);SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议。
2024-08-12 21:16:48
1805
1
原创 什么是IIC通信协议?
1.IIC简介2.IIC通信协议2.1 IIC的空闲状态2.2IIC总线的起始信号与终止信号2.3IIC总线上数据传送的应答信号2.4IIC总线上数据有效性2.5IIC总线上数据帧格式2.6IIC寻址2.7IIC主机向从机发送数据2.8IIC从机向主机发送数据
2024-07-29 07:09:10
5770
原创 驱动、BSP、HAL三者的区别和联系
HAL是介于底层硬件和上层软件之间的一层抽象层,用于隐藏硬件的具体实现细节,提供统一的接口。抽象硬件细节,提供易于使用的API。提高代码的可移植性,使得上层应用和中间件无需关心底层硬件的具体实现。通常由硬件厂商提供,帮助开发者快速开发和移植应用。各种外设的抽象层接口函数,例如GPIO、UART、I2C、SPI等。STM32 HAL库,提供了对STM32系列微控制器外设的抽象和访问。驱动、BSP和HAL在嵌入式系统中分别扮演着不同但互补的角色。
2024-06-18 21:38:44
10119
原创 C语言中大小写字母是如何转化的?
/ 方法一: 使用toupper和tolower函数进行大小写转换// 方法二: 使用ASCII码进行大小写转换// 方法三: 使用位运算进行大小写转换return 0;欢迎批评指正,共同进步!一、库函数法1.小写转换大写:toupper()函数2.大写转00换小写:tolower()函数二、加减32法1.小写转换成大写:字符数减322.大写转换成小写:字符数加32三、位运算法1.大小写转换:字符数按位异或32。
2024-03-17 22:46:59
6203
原创 《C语言库函数--1.memset()函数》
memset函数是对n个字节进行赋值。而char类型占1个字节。但是int类型占4个字节,所以对int、short等类型赋值时,需要乘上字节数。memset函数第一个参数是指针类型,也就是说,只要我们给他一个地址就行了。输出结果可以看到,并没有给数组元素赋值为1。前面我们说过,memset是对连续的n个字节进行赋值。但是int类型占4个字节。memset赋值时,直接将数组拆成40个字节赋值,并没有把4个字节看成一个整体.将s为首地址的一片连续的n个字节内存单元都赋值为ch。
2024-03-10 22:30:17
626
原创 《C语言文件操作》
1. 文本数据和二进制1.1 文本数据1.2 二进制数据1.3文本文件和二进制文件2. 文件的打开和关闭2.1 文件指针2.2 打开文件2.3 关闭文件2.4 注意事项:3. 文本文件的读写3.1 向文件中写入数据3.2 从文件中读取数据3.3 注意事项4. 二进制文件的读写4.1 向文件中写入数据4.2 从文件中读取数据5.文件定位5.1ftell函数5.2rewind函数5.3fseek函数6.文件缓冲区。
2024-03-10 22:17:38
1168
原创 《C语言都有哪些字符串处理函数?》
字符串处理函数1. gets()--读2.fgets()-从指定文件内读3.puts()-输出4.fputs()-写入到指定文件中5.strlen()-计算字符串长度6.strcpy()-复制7.strncpy()-复制前n个字符8.strcat()-字符串连接9.strncat()-将前n个字符连接10.strcmp()-比较字符串大小11.strncmp()-比较前n个字符大小14.strchr()-查找字符15.strstr()-查找字符串16.strtok()-分割17.atoi()-扫描数字。
2024-03-09 23:57:29
1507
原创 《什么是预处理?》
1、预定义符号;2、 #define;3、#undef;4、命令行定义;5、条件编译;6、文件包含;7、其他预处理指令;8、#define和typedef的区别。
2024-03-09 23:51:56
1183
原创 《C++进阶--11.文件操作》
文件操作必须包含头文件 fstream读文件可以利用 ofstream ,或者fstream类打开文件时候需要指定操作文件的路径,以及打开方式利用<<可以向文件中写数据操作完毕,要关闭文件。
2024-03-02 22:34:29
1304
原创 《C++进阶--10.多态》
10.多态 10.1 多态的基本概念 10.2 多态案例-计算器类 10.3 纯虚函数和抽象类 10.4 多态案例-制作饮品 10.5 虚析构和纯虚析构 10.6 多态案例三-电脑组装
2024-03-01 22:35:52
1141
2
原创 《C++进阶--9.继承》
9. 继承9.1 继承的基本语法9.2 继承方式9.3 继承中的对象模型9.4 继承中构造和析构顺序9.5 继承同名成员处理方式9.6 继承同名静态成员处理方式9.7 多继承语法9.8 菱形继承
2024-02-27 23:47:43
1542
原创 《C++进阶--8.运算符重载》
8. 运算符重载8.1 加号运算符重载8.2 左移运算符重载8.3 递增运算符重载8.4 赋值运算符重载8.5 关系运算符重载8.6 函数调用运算符重载。
2024-02-26 22:23:13
681
1
原创 《C++进阶--6.C++对象模型和this指针》
6.3 C++对象模型和this指针6.1 成员变量和成员函数分开存储6.2 this指针概念6.3 空指针访问成员函数6.4 const修饰成员函数(常函数)
2024-02-24 17:30:00
611
原创 《C++进阶--5.对象的初始化和清理》
5. 对象的初始化和清理5.1 构造函数和析构函数5.2 构造函数的分类及调用5.3 拷贝构造函数调用时机5.4 构造函数调用规则5.5 深拷贝与浅拷贝5.6 初始化列表5.7 类对象作为类成员5.8 静态成员。
2024-02-23 19:15:15
1118
1
原创 《C++进阶--3.函数提高》
3. 函数提高 3.1 函数默认参数3.2 函数占位参数3.3 函数重载 3.3.1 函数重载概述3.3.2 函数重载注意事项
2024-02-22 22:45:20
453
1
原创 《C++进阶--2.引用》
引用是C++经常拿来与C语言的指针相比较的功能,引用不是新定义一个变量,而是给已存在的变量取一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。
2024-02-22 21:00:00
462
1
原创 C语言的三大基本结构
顺序结构、选择结构和分支结构。if分支语句、switch分支语句、for循环语句、while循环语句、do···while循环语句。
2022-07-27 09:23:12
30125
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人