库函数的使用

学了一周多的STM32,从最开始的点亮一盏灯到中断定时的使用,发现对于ST库使用的一些使用方法,现作一小结:

 

1、初始化结构体

     a、定义一个xxxInitTypeDef 类型的结构体,比如GPIOInitTypeDef类型的GPIOInitStructure用来配置GPIO;

     b、根据所使用的要求向这些结构体的成员中写入特定的控制参数,如GPIO_initStructure.GPIO_Pin=GPIO_Pin_13;

     c、将结构体作为输入参数调用相应的外设库函数xxxInit(),实现向寄存器写入控制参数;

 

2、数据的输入与输出

     a、先通过输入参数向函数制定要使用的外设是什么,比如用(GPIOA,GPIOPin5),选中PA5引脚进行控制;

     b、进行写或者读数据操作,例如函数GPIO_WriteBit(GPIOA, u16 GPIO_Pin5, Bit_RESE) ,是对PA5进行写1操作;

     c、如果是接收外部数据,则调用Read或Receive函数,读取函数返回值来得到外部输入数据。

 

3、状态位、标志位

      在程序运行的过程中当我们需要知道一些外设的工作状态的时候,那么就会涉及一系列的标志检查函数:

      a、名为 PPP_GetFlagStatus的函数,其功能为检查外设 PPP某标志位被设置与否,例如:TIM_ GetFlagStatus ;

      b、名为 PPP_ClearFlag 的函数,其功能为清除外设 PPP标志位,例如:TIM_ ClearFlag ;

      c、名为 PPP_GetITStatus 的函数,其功能为判断来自外设 PPP的中断发生与否,例如:TIM_ GetITStatus ; 

      d、名为 PPP_ClearITPendingBit 的函数,其功能为清除外设 PPP 中断待处理标志位,例如:TIM_ ClearITPendingBit 。

 

总结:

      ST官方库有许多共同特点,在此对外设主要的共同函数进行一个简单的分类总结:

 

函数名 功能 输入参数 返回值
XXXInit() 对外设进行初始化

XXXinirTypeDef类型结构体

void

XXXDeInit()

以系统默认形式初始化外设 将要进行初始化的外设名 void

XXXStructInit()

以默认的数据填充初始化结构体 将要进行默认填充的XXXInitTypeDef类型结构体 void

XXXSendData()

使用外设发送数据

XXX相应的外设名;将要发送的数据

void

XXXReceiveData()

获取外设接收到的数据

XXX相应的外设名

返回接收到的数据

XXX_ GetFlagStatus ()

检测外设事件标志位 要检查的时间标志名 SET或RESET

XXX_ GetITStatus ()

检查中断标志 要检查的中断标志名 SET或RESET

XXX_ ClearFlag ()

清除事件标志位 要清除的事件标志名 void

XXX_ ClearITPendingBit ()

清除挂起的中断标志位 要检测的中断标志名 void

XXX_ITConfig ()

设置外设的中断 XXX相应得外设;选择开启外设的某中断 void

XXX_Cmd ()

使能或失能外设 配置外设名;ENABLE或DISABLE void

XXX_ DMACmd ()

配置外是否可使用DMA请求 配置外设名;选择要配置的DMA请求;ENABLE或DISABLE void

 

 

 

posted @ 2016-01-14 11:13  愤怒的小贱  阅读(808)  评论(0编辑  收藏  举报