自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单片机关于指针地址的疑问

做单片机的时候遇到了以上问题,两行代码只是小括号的区别,结果访问的地址完全不一样,有没有大佬解释一下。

2024-07-25 22:06:22 189

原创 关于TIM的中断标志位清除问题

如上,在定时器溢出中断实验中,由于只存在一个定时器更新中断,所以在一开始我去掉了关于标志位的判断,结果发现程序现象不对,但是不明白为什么会这样,理论上进入中断必然由更新触发,那么不经判断直接清除为什么不可以。

2024-01-28 16:11:46 495 1

原创 HAL库新建工程(STM32F429IGT6)

记得修改Inc中的stm32f4xx_hal_conf_template.h文件为stm32f4xx_hal_conf.h。添加文件和路径到工程,这里还需要添加两个宏定义,编译无误,至此新建工程完成。可以删除掉或者在工程中暂时不添加这三个文件。1.新建工程文件夹,结构如下。文件到Library中。

2024-01-18 22:31:59 752 1

原创 字符串拼接

这三者的效果是完全一样的,但是下面这种 “ 变量+宏定义 ” 的用法是不可以的。在C语言中,我们通常会按照如下方式定义字符串。但事实上,还有一种奇怪的操作,即字符串拼接。甚至可以在其中加入宏定义。

2024-01-08 17:32:56 949 1

原创 HAL库新建工程(STM32F103C8T6)

5.找到内核文件,复制以下文件夹中的内容到工程文件夹startup下。6找到system相关文件,复制到工程文件夹startup下。4.Library下保存HAL库中 .c 和 .h文件。需要修改conf文件,去掉后面的template。至此startup文件内容添加完成。10.添加工程文件和必要的路径。

2023-12-28 01:20:10 816 1

原创 define 与 # 的特殊用法

运算符的作用是将参数 x 转换为字符串字面量, 即 "x"字符串连接起来,形成一个新的标识符。是一种连接操作符,用于将。

2023-12-22 16:44:50 26

原创 FreeRtos移植

在endif之前添加如下内容这里需要注释stm32f10x_it中的原函数到这里就移植完成了。

2023-10-17 11:47:32 58

原创 STM32新建标准库工程

复制该宏定义,添加到define当然不要忘了添加另外两个文件的路径至此,所有步骤完成。

2023-10-13 00:17:42 124

原创 STM32环境配置

在keil安装目录下,自带多种驱动,其中就包含64与32位的stlink驱动程序,双击即可安装。

2023-10-12 23:18:24 104

原创 free释放指针内存的问题

在之前的学习中我们了解过值传递和地址传递的不同。方式1采用值传递,所以 me = NULL 并没有改变实参指针的指向,而是改变了实参副本的指向。方式2采用地址传递,所以 *me = NULL 可以修改指向,这两点与我们之前的学习是相符的。

2023-10-09 19:12:15 50 1

原创 typedef用法大全

1.基本数据类型替换。

2023-10-07 14:59:37 29 1

原创 malloc之动态内存管理

malloc允许用户自行申请指定大小的内存,在字符数组的学习过程中,我们可能遇到如下问题:事先不知道存放字符串的长度,因此会设定一个长度足够大的数组,这样就造成了内存的浪费。但是借用malloc,就可以实现需要多少内存,就申请多少内存的效果。return 0;与传统的赋值相比,这里采用一个指针来暂存内容,后面使用free来释放暂存空间,所以实际存储空间就是字符串的大小。

2023-10-07 11:41:24 36 1

原创 指针函数、函数指针、函数指针数组

这里只是加了一些数组方面的知识,当你掌握了函数指针的用法,相信也能很好的理解了。函数指针是一个指向函数的指针,在定义时要注意与函数类型相匹配。这里我使用typedef来更加方便的定义函数指针。在用法上,和普通的函数基本一致。

2023-10-05 11:07:33 27

原创 常量指针与指针常量

仔细观察 *p 的位置, 与 const int i 中变量所在的位置一样,如此就很好理解了,变量 i 的值不可以被修改,同理 *p ,即 p 所指空间的内容不可以修改,但通常我们会令 p 指向一个变量,直接修改变量值的方法还是可用的。以 strcpy 函数为例,参数二是一个常量指针,这就意味着对源字符串操作的同时并不会改变其内容,所以当你看到一个为常量指针的形参,就可以大胆的传入参数,而不用担心传参的同时内容被修改。根据常量指针,可修改指向,不可以修改内容的性质,可有如下应用。

2023-09-25 11:43:25 50 1

原创 strcpy在修改指针内容时的错误

此处指针p指向字符串常量的地址,既然是常量,那么通过间接方式来修改值也是不可以的,该地址只有可读性,不可以使用strcpy来操作,只能使p指向一块新的常量地址。当我们试图修改一个字符串的内容时,通常会采用strcpy的方式,因为直接对字符串赋值是不允许的。因为此时的str代表地址常量,而常量不可以被修改。同样,在使用指针时也有类似的问题。但仍要确保原地址空间足够容纳新的字符串。

2023-09-20 20:58:58 195 1

原创 数组与指针在访问元素时的地址自增问题

可以观察到,指针加一之后,仍然增加4个字节,指向元素 arr[0][1]的地址, 但是 arr + 1却增加了20个字节长度,刚好是一整行元素所占空间大小。可以看到,无论是数组加一还是指针加一,都能够在地址中增加一个int的字节长度,准确访问到元素 ”2“,但这在二维数组中却不同。

2023-09-19 16:29:25 206

原创 strncmp函数实现单个字符的比较

strncmp函数实现单个字符的比较

2023-09-18 10:34:32 377

空空如也

空空如也

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

TA关注的人

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