栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学习STM32单片机之结构体思想

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习STM32单片机之结构体思想

学习目标:

  • 掌握 STM32 基础知识

    学习STM32单片机之------结构体思想


    学习内容:

    1.我们在操作寄存器的时候,操作的是寄存器的绝对地址,如果每个寄存器都这样操作,那将非常麻烦。
    2.我们考虑到外设寄存器的地址都是基于外设基地址的偏移地址,都是在外设基地址上逐个连续递增的,每个寄存器占32 个或者16 个字节,这种方式跟结构体里面的成员类似。
    3.定义一种外设结构体,结构体的地址等于外设的基地址,结构体的成员等于寄存器,成员的排列顺序跟寄存器的顺序一样。这样我们操作寄存器的时候就不用每次都找到绝对地址,只要知道外设的基地址就可以操作外设的全部寄存器,即操作结构体的成员即可。
    下面先定义一个GPIO 寄存器结构体,结构体里面的成员是GPIO 的寄存器,成员的顺序按照寄存器的偏移地址从低到高排列,成员类型跟寄存器类型一样。
    1 typedef struct {
    2 __IO uint32_t CRL;
    3 __IO uint32_t CRH;
    4 __IO uint32_t IDR;
    5 __IO uint32_t ODR;
    6 __IO uint32_t BSRR;
    7 __IO uint32_t BRR;
    8 __IO uint32_t LCKR;
    9 } GPIO_TypeDef;
    CRL : 端口配置低寄存器
    CRH: 端口配置高寄存器
    IDR: 端口输入数据寄存器
    ODR: 端口输出数据寄存器
    BSRR: 端口位设置/清除寄存器
    BRR: 端口位清除寄存器
    LCKR: 端口配置锁定寄存器


    学习总结:

    以结构体的思想去定义寄存器,想操作寄存器就变成了操作结构体,这就相当于定义了库


  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/779568.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号