外部中断的信号从GPIO到AFIO,再到EXTI,再到NVIC,最终通向CPU,这样才能让CPU由主程序跳转到中断程序执行(中断程序应该放哪:我们需写一个中断函数,中断函数的名字都是固定的,每个中断通道都对应一个中断函数,中断函数名字参考启动文件,以IRQHandler结尾的字符串就是中断函数的名字,中断函数是无参无返回值的;在中断函数里,一般都是先进行一个中断标志位的判断,确保是我们想要的中断源触发的函数;中断程序结束后,一定要再调用一下清除中断标志位的函数(因为只有中断标志位置1了,程序就会跳转到中断函数,如果不清除中断标志位,那它就会一直申请中断))
AFIO库函数(AFIO的库函数和GPIO库函数在一个文件里的)
GPIO_AFIODeInit:复位AFIO外设,调用函数,AFIO外设的配置就会全部清除
GPIO_PinLockConfig:锁定GPIO配置的,调用函数,参数指定某个引脚,那这个引脚的配置就会被锁定,防止意外更改(GPIO外设的函数)
GPIO_EventOutputConfig、GPIO_EventOutputCmd:配置AFIO的事件输出功能的
GPIO_PinRemapConfig:用来引脚重映射
GPIO_EXTILineConfig:调用这个函数,可以配置AFIO的数据选择器,来选择所需要的中断引脚
GPIO_ETH_MediaInterfaceConfig:和以太网相关
EXTI库函数
EXTI_DeInit:调用函数,可以把EXTI的配置清除,恢复成上电默认的状态
EXTI_Init:调用函数,就可以根据这个结构体里的参数配置EXTI外设(初始化EXTI)
EXTI_StructInit:调用函数,可以把参数传递的结构体变量赋一个默认值
EXTI_GenerateSWInterrupt:用来软件触发外部中断,调用这个函数,参数给一个指定的中断线,就能软件触发一次这个外部中断
EXTI_GetFlagStatus:可以获取指定的标志位是否被置1了(主程序里查看和清除标志位,都是读写状态寄存器)
EXTI_ClearFlag:可以对置1的标志位进行清除
EXTI_GetITStatus:获取中断标志位是否被置1了(中断函数里查看和清除标志位)
EXTI_ClearPendingBit:清除中断挂起标志位
NVIC库函数
NVIC_PriorityGroupConfig:用来中断分组的,参数是中断分组的方式
NVIC_Init:根据结构体里面指定的参数初始化NVIC
NVIC_SetVectorTable:设置中断向量表
NVIC_SystemLPConfig:系统低功耗配置
TIMER库函数
TIM_DeInit:恢复缺省配置
TIM_TimeBaseInit:时基单元初始化,用来配置时基单元的(时基单元)
TIM_TimeBaseStructInit:可以把结构体变量赋一个默认值
TIM_Cmd:使能计数器的(运行控制)
TIM_ITConfig:使能中断输出信号的(中断输出控制)
TIM_InternalClockConfig:选择内部时钟
TIM_ITRxExternalClockConfig:选择ITRx其他定时器的时钟
TIM_TIxExternalClockConfig:选择TIx捕获通道的时钟
TIM_ETRClockMode1Config:选择ETR通过外部时钟模式1输入的时钟
TIM_ETRClockMode2Config:选择ETR通过外部时钟模式2输入的时钟
TIM_ETRConfig:这个不是用来选择时钟的,是单独用来配置ETR引脚的预分频器、极性、滤波器这些参数的
TIM_PrescalerConfig:用来单独写预分频值的
TIM_CounterModeConfig:用来改变计数器的计数模式
TIM_ARRPreloadConfig:自动重装器预装功能配置
TIM_SetCounter:给计数器写入一个值
TIM_SetAutoreload:给自动重装器写入一个值
TIM_GetCounter:获取当前计数器的值
TIM_GetPrescaler:获取当前的预分频器的值
TIM_GetFlagStatus:可以获取指定的标志位是否被置1了(主程序里查看和清除标志位,都是读写状态寄存器)
TIM_ClearFlag:可以对置1的标志位进行清除
TIM_GetITStatus:获取中断标志位是否被置1了(中断函数里查看和清除标志位)
TIM_ClearPendingBit:清除中断挂起标志位
输出比较
TIM_OC1Init:配置输出比较单元(输出比较有四个单元,一个函数配置一个单元)
TIM_OC2Init:配置输出比较单元
TIM_OC3Init:配置输出比较单元
TIM_OC4Init:配置输出比较单元
TIM_OCStructInit:给输出比较结构体赋一个默认值
TIM_ForcedOC1Config:是用来配置强制输出模式的(如果在运行中想要暂停输出波形并且强制输出高或低电平)
TIM_ForcedOC2Config:是用来配置强制输出模式的
TIM_ForcedOC3Config:是用来配置强制输出模式的
TIM_ForcedOC4Config:是用来配置强制输出模式的
TIM_OC1PreloadConfig:配置CCR寄存器的预装功能(就是影子寄存器:即写入的值不会立即生效,而是在更新事件才会生效)
TIM_OC2PreloadConfig:配置CCR寄存器的预装功能(就是影子寄存器)
TIM_OC3PreloadConfig:配置CCR寄存器的预装功能(就是影子寄存器)
TIM_OC4PreloadConfig:配置CCR寄存器的预装功能(就是影子寄存器)
TIM_OC1FastConfig:配置快速使能的(手册里单脉冲模式有介绍)
TIM_OC2FastConfig:配置快速使能的
TIM_OC3FastConfig:配置快速使能的
TIM_OC4FastConfig:配置快速使能的
TIM_ClearOC1Ref:(在手册里,外部事件时清除REF信号有介绍)
TIM_ClearOC2Ref:
TIM_ClearOC3Ref:
TIM_ClearOC4Ref:
TIM_OC1PolarityConfig:用来单独设置输出比较的极性的
TIM_OC1NPolarityConfig:带N的就是高级定时器里互补通道的配置
TIM_OC2PolarityConfig:用来单独设置输出比较的极性的
TIM_OC2NPolarityConfig:带N的就是高级定时器里互补通道的配置
TIM_OC3PolarityConfig:用来单独设置输出比较的极性的
TIM_OC3NPolarityConfig:带N的就是高级定时器里互补通道的配置
TIM_OC4PolarityConfig:用来单独设置输出比较的极性的(OC4没有互补通道,就没有OC4N的函数)
TIM_CCxCmd:单独用来修改输出使能参数的
TIM_CCxNCmd:单独用来修改输出使能参数的
TIM_SelectOCxM:选择输出比较模式(用来单独更改输出比较模式的函数)
TIM_SetCompare1:单独更改CCR寄存器值得函数(在运行的时候,更改占空比需要用到)
TIM_SetCompare2:单独更改CCR寄存器值得函数(在运行的时候,更改占空比需要用到)
TIM_SetCompare3:单独更改CCR寄存器值得函数(在运行的时候,更改占空比需要用到)
TIM_SetCompare4:单独更改CCR寄存器值得函数(在运行的时候,更改占空比需要用到)
TIM_CtrlPWMOutputs:仅高级定时器使用,在使用高级定时器输出PWM时,需要调用这个函数,使能主输出,否则PWM将不能正常工作
|