zoukankan      html  css  js  c++  java
  • 库函数的使用

    学了一周多的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

     

     

  • 相关阅读:
    mac访达中的位置
    ResponseEntity和@ResponseBody以及@ResponseStatus区别
    Spring Boot中进行Junit测试
    添加数据库时出现time zone无法识别问题
    HTTPS
    表达式求值
    《进击JavaScript核心》学习笔记
    GitLab领取任务+建立分支+本地修改+上传分支+合并分支详细步骤
    黑苹果使用感受和常见问题注意事项!
    JS进阶练习
  • 原文地址:https://www.cnblogs.com/lwangj/p/5129572.html
Copyright © 2011-2022 走看看