STM3F1遇到的问题总结

  1. STM32定时器的预装载值和预分频系数如何确立?

根据定时器时钟的频率,比如时钟的频率是72MHZ,可以理解为一秒钟STM32会自己数72M次,预分频系数就是将频率分割,比如分频系数是72,则该时钟的频率会变成72MHZ/72=1MHZ。假定分频系数是72,那么频率变成1MHZ,也就意味着STM32在一秒钟会数1M次,即1us数一次。好了,接下来就是确定预装载值,比如需要定时1ms,由于1ms=1us*1000,那么预装载值就是1000;如此类推,在预分频系数确定的情况下,定时的时长就由预装载值确定了。

  1. 头文件中#ifndef后面的如何写及什么作用

在头文件中加入#ifndef或#ifdef等宏定义,是为了防止重复声明。
我们知道,头文件一般是用来声明的,会被其他的源文件和头文件include,当被多个文件include的时候就会造成重复声明。 为了使得只声明一次,引入前面所说的宏定义,一般以文件名大写和_来当宏的名字。
这个宏是给预处理器用的,通常预处理变量用大写,所以这些宏定义都用大写。为了方便,一般将大写的文件名作为预处理器变量,其实在#ifndef后面加什么都都可以,用文件名只是为了好区分。它只是用来定义一个预处理器变量。https://blog.csdn.net/dayou1024/article/details/80537433

  1. extern使用方法总结

1、函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern。但是引用的时候一样需要声明的。
2、全局变量在外部使用声明时,extern关键字是必须的,如果变量没有extern修饰且没有显式的初始化,同样成为变量的定义,因此此时必须加extern,而编译器在此标记存储空间在执行时加载内并初始化为0。而局部变量的声明不能有extern的修饰,且局部变量在运行时才在堆栈部分分配内存。
3、全局变量或函数本质上讲没有区别,函数名是指向函数二进制块开头处的指针。而全局变量是在函数外部声明的变量。函数名也在函数外,因此函数也是全局的。
4、谨记:声明可以多次,定义只能一次。
5、extern int i; //声明,不是定义
int i; //声明,也是定义

  1. static使用方法总结

加上static关键字的,不管是变量还是关键字,在局部变量中,变量仅限于局部可见,在全局区中,static变量或函数仅限于本文件可见,static修饰的局部变量,它的数值 是上一次函数调用结束之后的数值。
关键字 static
可以修饰 函数 可以修饰 变量
它所修饰的内容为静态
static修饰的局部变量为 静态局部变量
特点:
1、生命周期 整个程序
2、访问范围 和普通变量是一样的
3、static修饰的局部变量 它的数值 是上一次函数调用结束之后的数值
4、static还可以 修饰 全局变量 或者函数
静态局部变量 在定义的时候没有初始化 系统会给定 0为默认的初始值
5、如果涉及到多文件操作的时候 用static修饰的全局变量 这个全局 变量只能是在本文件中使用
static修饰函数的时候 一样 表示限定使用范围 之恩能够是在本文件中使用
6、普通的 局部 变量是在栈上面分配 空间的 是系统分配以及 负责释放回收的
全局变量 静态局部变量实际上是在 静态区 上分配空间
————————————————
原文链接:https://blog.csdn.net/morixinguan/article/details/50638172

  1. 数组和指针到底有什么区别?

数组的首地址就是数组的第一个元素,可以这么说,但是,它们之间实质是不能等效的,为什么这么说?
数组的首地址和数组的首元素的首地址是完成不同的概念,看着名字很像,其实有所区别。数组名是个左值,但不是可修改的左值,而数组首元素的首地址,也就是0地址,你可以对它进行赋值,就相当于给数组的元素赋值。所以数组的首地址和数组的首元素的首地址是不相同的概念。
指针是间接寻址,数组是直接寻址,这就是两者在访问数据时的区别。指针的值是运行时从内存取得的,数组的值是编译时已经确定的。所以切记不要将两者混淆。我们只能说数组具有指针的特性,却不能说数组就是指针。在使用指针,也就相当于在操作内存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值