自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32状态机+定时器中断+按键单双击长按判断-移植非常方便

提前说明,状态机的部分状态转移源于江协科技的按键状态机,特此声明。因为在使用江的状态机时发现无法成功判定双击,因此自己改善了一下,并且集成了实例,方便使用者移植。

2025-04-15 00:21:27 1129

原创 void指针

void 指针是一种特殊的指针,表示为“无类型指针”,在 ANSI C 中使用它来代替“char*”作为通用指针的类型。由于 void 指针没有特定的类型,因此它可以指向任何类型的数据。要将 void 指针赋值给其他类型的指针,必须进行强制类型转换。void*型的指针数组的成员可以是任意类型的指针,但是在使用这些成员时需要强制转换回来。

2025-03-31 20:50:00 226

原创 数组那些事

介绍了数组基础知识

2025-03-31 20:45:34 937

原创 源文件变为可执行程序的过程

从源文件到exe的过程

2025-03-31 20:31:50 404

原创 C语言共用体

共用体和结构体的区别:公用体中所有的成员公用一块地址空间,即联合体只存放一个被选中的成员,内存空间是最长成员占用的空间,需要进行字节对齐。结构体所有成员占用空间是累加的,其所有成员都存在,不同成员会存在不同的地址,内存空间等于所有成员占用的空间之和,同样需要字节对齐。在这里,我们可以看到共用体的 i 和 f 成员的值有损坏,因为最后赋给变量的值占用了内存位置,这也是 str 成员能够完好输出的原因。1、union中可以定义多个成员,union的大小由最大的成员的大小决定。为了访问共用体的成员,我们使用。

2024-11-10 21:49:44 352

原创 字符数组和字符指针的区别

原因分析:四个都是存储的常量字符串,而常量字符串在内存中只会存储一份;s1 和 s2 是字符型的数组,数组名指向本身内存块的首元素地址;而 s3 和 s4 是字符型的指针,指针名指向的是同一块内存的地址。

2024-11-10 21:47:05 261

原创 scanf和gets混用会出现的问题

这关键就在于二者使用的结束标记不同。输入字符串时,scanf()遇到空格、回车、Tab结束,但在缓冲区中还留着这些结束符,此后如果使用gets()想去获取下一行字符串,它碰到的却是前面遗留下来的回车(或者回车之前还有空格等空白符),那么这次gets()就直接失效了。如果在scanf后用gets需要注意一点,gets是遇到’\n’直接返回,而输入scanf后回车会将’\n’留在输入缓存里,而gets正好遇到’\n’就直接返回了,所以你没有机会输入。

2024-11-10 21:45:51 250

原创 用异或交换两个数

【代码】用异或交换两个数。

2024-11-10 21:44:59 201

原创 #和##的用法:

打印出:The value of a is 10 和 The value of b is 5.500000。可见,#可以把一个宏参数转换成相应的字符串,如#X --> "X"可见,##是将前后两个符号连接起来。

2024-11-10 21:28:26 279

原创 scanf和gets混用会出现的问题

这关键就在于二者使用的结束标记不同。输入字符串时,scanf()遇到空格、回车、Tab结束,但在缓冲区中还留着这些结束符,此后如果使用gets()想去获取下一行字符串,它碰到的却是前面遗留下来的回车(或者回车之前还有空格等空白符),那么这次gets()就直接失效了。如果在scanf后用gets需要注意一点,gets是遇到’\n’直接返回,而输入scanf后回车会将’\n’留在输入缓存里,而gets正好遇到’\n’就直接返回了,所以你没有机会输入。

2024-11-10 21:25:21 400

原创 STM32F103 DMA

本文简要介绍了STM32F103xx芯片中关于DMA的知识。

2024-11-10 21:12:37 2183

原创 STM32 RCC

本文简要介绍了STM32的时钟树的基础知识

2024-11-09 17:47:22 315

原创 STM32 TIM

TIM(Timer)定时器。定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断。16位计数器、16位预分频器、16位自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时,并且支持定时器级联,实现计时指数增长。不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能。根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型,。

2024-11-09 17:45:45 1475

原创 STM32 NVIC和EXTI

本文简要介绍了NVIC和EXTI

2024-11-08 17:31:57 1533

原创 STM32 GPIO

简要介绍了STM32 GPIO的基础知识

2024-11-08 17:27:50 514

空空如也

空空如也

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

TA关注的人

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