自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zrchyl的博客

一个被嵌入式软件工程师耽误的作家,准备跟大家分享自己的一些嵌入式开发经验。后期会不断的更新每一篇文章感谢大家的认可。

  • 博客(33)
  • 收藏
  • 关注

原创 Stm32f103用的晶振8M或12M在哪里修改配置

【代码】Stm32f103用的晶振8M或12M在哪里修改配置。

2024-03-05 09:42:34 332

原创 嵌入式软件工程师从哪方面创业

作为嵌入式软件工程师,以下是一些可能的方向:

2024-01-09 10:37:27 584

原创 keil报错:error: #3093: anonymous structs are only supported in --gnu mode, or when enabled with

官方的解释:https:/www.keil.com/support/man/docs/armcc/armcc_chr1359124962747.htm。只要把这个加上就可以去掉报错。

2024-01-03 11:49:02 596

原创 keil下载报错:Cannot Load Flash Programming Algorithm !

keil下载报错:Cannot Load Flash Programming Algorithm!该处是修改arm编译器的。

2024-01-03 09:22:41 2175

原创 单片机的最小系统

(Microcontroller Unit,MCU)是一种集成了处理器核心、存储器(包括闪存、RAM等)、计时器、I/O接口和各种外设(如串口、定时器、ADC/DAC等)的小型计算机系统,通常集成在一个芯片(单片)上。单片机广泛应用于各种嵌入式系统和控制系统中,它们可以执行特定的任务,从简单的数据采集到复杂的控制任务都可以通过单片机来实现。:单片机通常设计用于特定应用场景,例如汽车电子、家电控制、医疗设备、工业控制等。:支持各种编程语言和开发环境,如C、C++、汇编语言等,开发简单、灵活。

2023-12-29 15:55:53 750

原创 单片机MCU堆栈概念与区别

C语言中的堆栈是用于存储函数调用、局部变量以及程序执行期间所需的临时数据的内存区域。堆栈由编译器自动管理,是一种后进先出(LIFO)的数据结构。堆栈空间大小指的是分配给堆栈的内存空间大小,它限制了函数调用和局部变量的深度和内存使用情况。

2023-12-29 10:31:10 2128

原创 入职一年才准休年假?

人社部门一名负责人介绍,《职工带薪年休假条例》和《企业职工带薪年休假实施办法》规定,职工在同一或者不同用人单位工作期间,应当计为累计工作时间。“办法”第五条规定,职工新进用人单位且累计工作时间满12个月的,当年度年休假天数,按照在本单位剩余日历天数折算确定,折算后不足1整天的部分不享受年休假。人社部2009年复函,明确指出‘职工连续工作满12个月以上’,既包括职工在同一用人单位连续工作满12个月以上的情形,也包括职工在不同用人单位连续工作满12个月以上的情形。入职一年才准休年假?

2023-12-29 09:11:41 351

原创 keil编译报错:No space in execution regions with .ANY selector matching

当程序执行函数调用时,相关的信息会被推入堆栈,当函数执行完毕时,这些信息会被弹出堆栈,程序继续执行。堆栈的大小可以根据需求进行修改和设置,但通常在单片机中,堆栈的大小是有限制的,由硬件或软件定义。内联函数: 内联函数可以减少函数调用的开销,将函数的内容直接嵌入到调用它的地方,提高程序执行速度。通常,堆栈大小是在编译器或开发环境中设置的,建议参考相关的文档和开发工具的说明来进行设置。在程序中设置堆栈大小: 有些单片机允许在程序中显式地设置堆栈大小,这可能需要特定的指令或者对相关寄存器的操作。

2023-12-28 12:01:25 3020

原创 为什么买车4s店喜欢低开发票

购置税是一种针对购车行为而征收的税费。它是按照购车的价格或者规定的最低价格比例计算的,由购车者支付。购置税率因车辆类型不同而异,通常是按照车辆价格的一定比例征收。购置税是由国家征收的,由购车者在购车时缴纳。: 增值税是按照商品或服务的增值额部分征收的税款,属于间接税。在汽车行业中,增值税一般是指生产和销售环节中涉及的税费,生产厂家或者销售商需要缴纳。消费者购买新车时,售价中已经包含了增值税,所以增值税对于终端消费者来说是透明的,并不需要额外缴纳。

2023-12-28 10:54:30 999

原创 RT-Thread Studio如何打开已有项目及初级使用教程

点击Browse,选择工作区,然后点击Launch加载。加载后多了这个文件,也就是创建一个自己的工作空间。这个记录软件的配置,外观,工程的状态。

2023-12-27 11:24:54 1758

原创 C语言:冒泡排序算法的原理

每一轮遍历都会把一个最大(或最小)的元素放到正确的位置,因此需要进行多次遍历,时间复杂度为 O(n^2),其中 n 是要排序的元素数量。它重复地遍历要排序的列表,每次遍历都比较相邻的两个元素,如果它们的顺序不符合要求(比如要求从小到大排序,但两个元素的顺序是大于小),则交换这两个元素的位置,直到整个列表排序完成。冒泡排序是一种简单的排序算法,它多次遍历要排序的列表,每次遍历都将相邻的两个元素进行比较并交换,直到整个列表排序完成。比较相邻元素:从第一个元素开始,依次比较当前元素与下一个元素的大小。

2023-12-26 09:05:42 821

原创 C语言 for 循环的所有应用

for循环是一种强大的迭代结构,通过初始化、循环条件和增量控制,能够有效地进行重复操作。通过合理使用for循环,可以处理大量重复性的任务。当使用for循环时,它提供了一种在特定条件下重复执行代码块的方法。

2023-12-25 18:09:03 971

原创 FLASH,SRAM与Program Size: Code=46286 RO-data=1698 RW-data=560 ZI-data=39960关系

在这种情况下,它仍然属于RW-data,可以被读取和写入。常量适用于那些在编译时就已经确定并且在整个程序中不会改变的值,而只读变量则更适合表示在程序运行时期间不能修改的值,但需要更多类型检查和更精确的定义。在上面的例子中,readOnlyVar 被声明为一个只读变量,它的值被初始化为10,并且在程序的其余部分不能再被修改。在典型的C语言中,全局变量(比如 int globalVar)既可以属于RW-data(可读写数据),也可以属于ZI-data(零初始化数据),这取决于变量是否在定义时被显式地初始化。

2023-12-22 16:52:01 1394

原创 MCU怎么区分FLASH,ROM和RAM

FLASH存储器通常允许对其中的内容进行写入,但写入操作需要特殊的擦除和编程过程。此外,FLASH存储器通常具有有限的擦写次数,因此需要谨慎管理写入操作,以延长器件的寿命。:ROM(只读存储器)是一种只读存储器,通常包含设备的固定程序或数据,无法在设备上运行时修改。RAM通常用于存储需要频繁读写的数据,是程序运行时的工作内存。:FLASH存储器用于存储程序代码和常量数据,通常用于存储固件(设备的程序代码)。:RAM是易失性存储器,当设备断电或复位时,其中的数据会丢失。

2023-12-20 14:49:19 989 1

原创 C语言中所有符号

关系运算符:==(等于)、!=(不等于)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)位运算符:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)其他运算符:&(取地址)、*(指针解引用)、sizeof(返回数据类型大小)算术运算符:+(加法)、-(减法)、*(乘法)、/(除法)、%(取模)赋值运算符:=(赋值)、+=(加等于)、-=(减等于)等等。逻辑运算符:&&(逻辑与)、||(逻辑或)、!#ifdef、#endif、#ifndef(条件编译)

2023-12-19 15:01:07 1497 1

原创 keil编译object file renamed from ‘.\Objects\MQTTConnectClient.o‘ to ‘.\Objects\mqttconnectclient_1.o‘.

把勾去掉,重新编译,再把勾打上,重新编译就可以了。1、即使我把重名删除也没用;在剩下的有用文件右击。

2023-12-14 08:58:45 344 1

原创 error: #3093: anonymous structs are only supported in --gnu mode, or when enabled with #pragma anon_

3、方法:如图可以在这里配置一下GNU extensions打勾。2、查看官方文件地址。

2023-12-13 11:08:40 691 2

原创 ASCII表

【代码】ASCII表。

2023-12-12 17:12:52 93

原创 C语言:运算符的优先级

在表达式中,优先级高的运算符会比优先级低的运算符先进行运算。如果不确定,建议使用括号来明确表达式的运算顺序,以避免混淆和错误。C 语言中各种运算符的优先级可以影响表达式的计算顺序。

2023-12-08 09:12:42 348

原创 c语言:什么是数组

多维数组是C语言中的数组的一种扩展形式,它允许以表格或矩阵的形式存储数据。多维数组实际上是数组的数组,允许在每个维度上有不同的大小。C语言中的数组是一种存储同类型数据元素的集合,它提供了有效地存储和访问一系列数据的机制。多维数组在表示矩阵、图像和其他二维数据结构时非常有用,但需要小心避免数组越界访问以及正确理解多维数组在内存中的存储方式。多维数组在内存中是连续存储的,数组名是指向数组首元素的指针。数组作为参数传递给函数时,实际传递的是指向数组首元素的指针。数组中的元素是连续存储的。声明和初始化多维数组。

2023-12-07 09:13:45 119 1

原创 C语言:什么是枚举类型

在这个例子中,enum Weekday 定义了一个名为 Weekday 的枚举类型,其中包含了一周的每天。每个标识符(比如 Monday、Tuesday)都代表了一个整数值,默认情况下从0开始递增。您也可以显式地为枚举中的标识符赋值,比如 enum Weekday { Monday = 1, Tuesday, …} 来指定从1开始的递增值。您可以声明枚举类型的变量,并将其设置为枚举中的某个值。最后,您可以使用 switch 语句根据枚举的值执行不同的操作。C语言中的枚举类型允许您定义一组命名的常量。

2023-12-07 08:51:44 26 1

原创 C语言的共同体

在这个示例中,struct Person 结构体包含了一个 char 类型的指针 name,用于存储姓名。createPerson 函数动态分配了足够的内存来存储姓名,并将提供的姓名复制到这块动态分配的内存中。freePerson 函数用于释放动态分配的内存,包括姓名的内存和结构体变量的内存。结构体中包含指针允许动态分配内存以存储可变长度的数据,这种灵活性使得在需要动态分配内存、使用动态大小的数据或动态管理数据时更为实用。当结构体包含指针时,它能够允许动态分配内存以及处理更复杂的数据结构。

2023-12-06 14:55:54 38

原创 C语言:结构体的理解

Person 结构体包含了一个姓名字符串、年龄整数、身高浮点数和一个嵌套的 Date 结构体成员,表示出生日期。结构体的成员可以通过.操作符进行访问和赋值,包括嵌套的结构体成员。当涉及C语言中的结构体时,它可以被用来组织和管理不同类型的数据,提供了一种将多个相关变量组合到一起的方法。结构体的优点在于它可以将相关的数据组织在一起,提高了代码的可读性和维护性。结构体也可以包含指针、数组以及其他结构体作为其成员,这样就能更灵活地表示复杂的数据结构。定义一个结构体,方便数据的管理,类似于分类,类里面很多属性。

2023-12-06 10:30:11 32 1

原创 循环链表的理解

循环链表的特点是,最后一个节点的 next 指针指向链表的头部节点。这使得遍历链表时,可以从任何节点开始,并在回到头部节点后停止。并且这个头部节点是第一个传进来的作为头部节点,后续都默认是这个节点为头就是。这个示例中的循环链表由结构体 Node 表示,每个节点包含一个整数数据和一个指向下一个节点的指针。insertNode 函数用于向循环链表中插入新节点,displayList 函数用于显示循环链表的内容。循环链表是一种特殊的链表结构,其尾部节点指向链表的头部节点,形成一个闭环。

2023-12-06 09:52:12 163 1

原创 双向链表的理解

这个示例展示了如何创建一个简单的双向链表,并在链表的前端插入新的节点。虽然只展示了在链表前端插入的操作,但同样可以实现在链表中间或末尾插入、删除节点等操作,而不必遍历整个链表。双向链表是一种链表数据结构,它与单向链表不同之处在于,每个节点不仅包含指向下一个节点的指针,还包含指向前一个节点的指针。这是它的一个优点,但相对于单向链表,它需要更多的内存来存储额外的指针。需要注意的是,与单向链表相比,双向链表需要更多的内存来存储额外的指针,但在需要频繁进行前向和后向遍历的情况下,它提供了更高的效率和灵活性。

2023-12-05 08:59:54 313

原创 指针和数组的相关内容

是一组相同类型的元素集合,这些元素在内存中是连续存储的。数组的每个元素都可以通过索引访问,这个索引通常是一个非负整数,表示元素在数组中的位置。指针可以指向内存中的任何数据,包括数组的第一个元素。通过指针,可以间接访问或修改存储在特定内存位置的数据。指针和数组在程序中的使用可以带来很大的灵活性和效率,但也需要小心管理内存和确保正确的指针操作,以避免出现错误和未定义的行为。在很多情况下,数组名本身就是指向数组第一个元素的指针。指针和数组在编程中是密切相关的概念,它们可以在许多编程语言中使用。

2023-12-05 08:57:43 17

原创 C语言:链表的理解

这个例子创建了一个包含三个节点的单向链表,每个节点存储一个整数。它首先分配内存来创建节点,然后通过指针连接这些节点以形成链表。随后,它遍历链表并打印每个节点的数据,并最终释放节点的内存。链表是一种基本的数据结构,它由节点组成,每个节点包含两部分:数据和指向下一个节点的指针。链表的优势在于其动态的特性,允许在运行时动态地分配内存来存储数据。这只是链表的基础概念和实现示例。在实际应用中,链表可用于实现更复杂的数据结构和算法,并且有多种类型的链表(单向链表、双向链表、循环链表等)适用于不同的需求。

2023-12-04 11:15:29 27 1

原创 指针和动态内存分配的应用案例

这些例子展示了C语言中指针和动态内存分配的实际应用,涵盖了数组、字符串和数据结构(链表)的使用。函数在运行时动态分配整数数组,并在使用后释放内存以避免内存泄漏。来动态创建链表节点,以及如何在程序结束时释放节点的内存以避免。函数动态分配字符串,并在需要时重新分配内存以容纳更多内容。-文章会不断的更新,希望能够帮助到需要的人。这个示例展示了如何使用指针和。csdn原创者:爱睡的梨。这个示例演示了如何使用。此示例演示了如何使用。

2023-12-04 10:49:37 129 1

原创 C语言:指向指针的指针

指向指针的指针(double pointers)是 C 语言中的概念,它允许你操作指针本身的指针。在 C 中,指针本身也是一种变量,它存储了某个变量的内存地址,而指向指针的指针就是指向存储其他指针地址的指针变量。使用指向指针的指针可以在多级间接引用中非常有用,特别是在函数返回多个值或者对指针进行动态修改的情况下。当你需要在函数中改变指针指向的地址或者值时,传递指向指针的指针可以让函数修改指针本身的值,而不仅仅是指针所指向的数据。函数中,我们传递了指向指针的指针,并将。是一个指向指针的指针。

2023-12-03 14:27:41 190 1

原创 C语言:函数指针分析与理解

函数指针在C语言中是一种强大的工具,允许以灵活的方式处理函数调用,提高代码的可重用性和扩展性。通过熟悉和实践函数指针的使用,你可以更好地理解和利用C语言中这一重要的概念。,它允许你在运行时动态地选择要调用的函数。函数指针可以作为参数传递给其他函数,也可以用于创建函数指针数组或作为结构体的成员。csdn原创者:爱睡的梨。C语言中的函数指针是。

2023-12-02 14:54:28 28 1

原创 指针和动态内存分配解读

指针和动态内存分配在C语言中是非常重要的概念,特别是当需要在运行时分配和释放内存空间时。动态内存分配允许程序在运行时请求所需的内存空间,并在不再需要时释放它,这对于灵活性和效率都非常有帮助。动态内存分配为C语言提供了灵活性和效率,但同时也需要谨慎使用。正确地分配和释放内存对于避免潜在的内存错误非常重要。(csdn原创者:爱谁的梨)

2023-12-02 13:15:57 142

原创 Linux常用的命令

linux命令

2023-12-01 13:56:04 18

原创 C语言指针的理解

【代码】C语言指针的理解。

2023-12-01 12:30:32 419

沁恒CH32F20系列开发驱动包及开发文档

里面有该系列芯片的所有驱动用例,主要用于驱动开发,搭建芯片的底层驱动,每一个驱动都是一个案例,大家可以根据驱动案例快速搭建程序跑起来, CH32F20系列是一种基于ARM Cortex-M0+内核的32位微控制器系列,由中国厂商瀚思(CH32F20x)生产。这个系列的微控制器常用于各种应用领域,包括消费类电子产品、工业控制、自动化系统等。 针对CH32F20系列微控制器,瀚思提供了一系列的开发驱动包,这些驱动包包括了各种功能模块的驱动程序和相关的软件库,有助于开发者更快地开始项目开发,减少开发周期。这些驱动包通常包括以下内容: 外设驱动程序:涵盖了微控制器上各种外设(如GPIO、UART、SPI、I2C、定时器等)的驱动程序,使开发者能够方便地控制和使用这些外设。 中断和事件驱动:提供了中断和事件处理的相关驱动程序,帮助实现基于事件的系统响应和任务调度。 时钟和电源管理:包括时钟配置和电源管理的驱动程序,帮助优化功耗并管理系统时钟。 存储器和存储管理:针对内部和外部存储器的访问和管理,如Flash、RAM、EEPROM等。 通信协议库:支持常用通信协议(如TCP/IP、CA

2023-12-06

空空如也

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

TA关注的人

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