打印
[应用相关]

STM32库函数功能

[复制链接]
293|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
泡椒风爪|  楼主 | 2024-3-31 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  外部中断的信号从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将不能正常工作

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

253

帖子

0

粉丝