单片机系统时钟
简单的说,时钟是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。每个时钟tick,系统都会处理一步数据,这样才能让工作不出现紊乱。
HAL 库中__weak 修饰符讲解
在 HAL 库中,很多回调函数前面使用__weak 修饰符。
weak 顾名思义是“弱”的意思,所以如果函数名称前面加上__weak 修饰符,我们一般称
这个函数为“弱函数”。加上了__weak 修饰符的函数,用户可以在用户文件中重新定义一个同
名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,
那么编译器就会执行__weak 声明的函数,并且编译器不会报错。
__weak 在回调函数的时候经常用到。这样的好处是,系统默认定义了一个空的回调函数,
保证编译器不会报错。同时,如果用户自己要定义用户回调函数,那么只需要重新定义即可,
不需要考虑函数重复定义的问题,使用非常方便,在 HAL 库中__weak 关键字被广泛使用。