CK_INT(默认内部时钟):
-
AHB——经过APB1预分频——产生F(CK_PSC)时钟
预分频系数不为1时,时钟CK_INT=2APB1时钟
时间计算公式:
新建自定义工程方法:在HARDWARE新建TIMER文件夹,新建timer.c和timer.h文件
打开keil的项目,加入timer相关文件,导入头文件路径,
并编译,产生h文件,打开头文件进行编译。
在这一步中首先定义了变量
在定时器函数TIM_TimeBaseInit()中
第一个参数TIMx代表了计时器名称,这里选择了TIM3,第二个参数为结构体指针
其结构体为
主要为预分频系数,计数模式的选择,自动重装周期值,以及设置时钟分频因子,最后一个在高级定时器才会使用
使能中断,并设置中断优先级
先定义了中断的变量
使能中断通过
void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);
实现
该函数的作用为开启定时器
设置中断服务函数
用来读取中断状态寄存器的值判断中断类型的函数:
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t)
该函数的作用是,判断定时器 TIMx 的中断类型 TIM_IT 是否发生中断(SET=1)
清除中断标志位的函数:
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)
TIM3_Int_Init()传入了自动装载值和预分频系数,定时500ms。
更新了加密部分和红外检测人数部分
作用:存放多种不同类型变量
写法:struct 结构体名称()
{
} 结构体变量名;
访问;结构体变量名.成员变量名
输入: scanf("类型",&结构体名.成员变量名)
输出: printf("类型",结构体.成员变量名)
第一种:
第二种;
其中每个成员为结构体数组的一个元素.
结构体指针的初始化;
struct 结构体名称 * 指针;
指针 = &结构体变量名;
访问成员:
第一种:(*结构体指针).成员名
第二种:结构体指针->成员名
传递结构体:
结构体可以作为参数传入了另一个结构体。
struct 结构体名称 函数名(结构体)
结构体是一种数据类型,既可以作为多种类型变量的存储,也可以作为函数,还可以作为参数传入函数