stm32-常用C语言技巧

C语言复习
1.为什么用头文件
    头文件为相关声明提供了一个集中存放的位置。头文件一般包含类的定义、extern 变量的声明和函数的声明

2.常用位操作
    & 按位与
    | 按位或
    ^ 按位异或
    ~ 取反
    << 左移
    >> 右移

3.#include 指示接受以下两种形式:
    #include <standard_header>
    #include "my_file.h"

4.#define宏定义关键字
    #define 标识符 字符串

5.#ifdef,#ifndef条件编译
    #ifndef SALESITEM_H
    #define SALESITEM_H
    // Definition of Sales_itemclass and related functions goes here
    #endif

6.#extern变量声明
    表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他没模块中寻找其定义。对于extern申明变量可以很多次,但定义只有一次

7.#typedef类型别名
    typedef 用来定义数据类型,即int double char等等,exm: typedef(means define type)typedef int a,即a可以代替int 作为数据类型使用, a number numbers;(means int number and int numbers)

8.enum枚举
    enum为枚举,即定义大括号内的变量作为常数。enum books {name=1, money, where, test1, test=3};若没有赋值,则后一个成员的值为前一个值+1,这里依次为1,2,3,4,3

9.static关键字
    其申明的局部变量,具有记忆功能

10.struct 结构体
    struct 结构体名{
    成员列表1;
    成员列表2;
    ...
    }变量名列表;
    在结构体声明的时候可以定义变量,也可以声明之后定义,方法是
    struct 结构体名字 结构体变量列表;

11.MDK中寄存器地址名称映射
    外设基地址 外设基地址为其地址
    AHB1地址 外设基地址+0x00020000
    GPIOA_BASE AHB1地址+0x0000
    GPIOA GPIOA_BASE地址+偏移地址

    #define GPIOA    ((GPIO_TypeDef *) GPIOA_BASE)
    将GPIO_BASE强制转化成GPIO_TypeDef类型的结构体指针,GPIOA指向GPIOA_BASE的地址,将其之后连续的地址转成结构体类型

猜你喜欢

转载自www.cnblogs.com/sailorwithoutsea/p/12395596.html