工作经验总结:MCU寄存器库的开发

2023-05-16

 目录

一、寄存器的结构体定义

二、寄存器的地址的宏定义


在进行MCU开发的时候,可能会遇到需要自己手写寄存器库的情况,以下整理了一些相关的示例以及注意事项。

一、寄存器的结构体定义

注意:在定义寄存器结构体的时候,需要注意MCU的字节序,看是小端的芯片还是大端的芯片。

小端:低地址存放低位

大端:低地址存放高位

(1)例:用Renesas中RH850中的一个寄存器作为示例,RH850为小端序

 结构体定义如下:

一般定义成一个共用体,既可以设置整体值,又可以针对某一位进行设置。

typedef volatile unsigned int vuint32_t

// 小端序,低地址存放低位
typedef union
{
    vuint32_t R;
    struct
    {
        vuint32_t CFE          :1;
        vuint32_t CFRXIE       :1;
        vuint32_t CFTXIE       :1;
        vuint32_t              :1;
        vuint32_t CFPLS        :3;
        vuint32_t              :1;
        vuint32_t CFM          :2;
        vuint32_t CFITSS       :1;
        vuint32_t CFITR        :1;
        vuint32_t CFIM         :1;
        vuint32_t CFIGCV       :3;
        vuint32_t CFTML        :5;
        vuint32_t CFDC         :3;
        vuint32_t CFITT        :8;
    } B;
}RegCFDCFCCk_u;

 (2)例:大端序MCU结构体定义示例

结构体定义如下: 

// 大端序,低地址存放高位
typedef union
{
    uint16_t R;
    struct
    {
        uint16_t rw         :2;
        uint16_t addr       :6;
        uint16_t data       :8;
    }
}Cmd_t;

二、寄存器的地址的宏定义

 寄存器地址宏定义如下:

#define RegRCFDC0_base          ( 0xFFD00000ul )
#define RegCFDCFCCk(k)          ((RegCFDCFCCk_u *))     (RegRCFDC0_base + 0x0118u + (0x04u * k))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

工作经验总结:MCU寄存器库的开发 的相关文章

  • 计算机业务学习心得体会及辅助资料

    教师业务学习心得体会 我校在2019年年末举行了一次全校性的教师业务学习活动 xff0c 在本次业务学习后业务水平取得了长足的进步和提升 xff0c 发现了一些不足 xff0c 获得了一些新的东西 xff0c 亦总结了一些心得和体会 xff
  • 归并排序 详解

    注 xff1a 内容 xff0c 图片来自于慕课网liuyubobobo老师的课程 官方代码链接 xff1a https github com liuyubobobo Play with Algorithms 算法复杂度 xff1a O x
  • 关于MSP432单片机的吐槽【2021电赛A题】

    一 选题 全国大学生电子设计竞赛刚刚完赛 xff0c 本人选做的是A题 xff1a 失真度测量装置 当时选题的时候看到它附带了说明 xff1a 一定要使用TI公司的MCU以及它的片内ADC xff0c 不得使用其他片外ADC 和数据采集模块
  • 实现TCP并发服务器---IO多路复用

    实现TCP并发服务器 IO多路复用 1 服务器模型 1 1 概念 服务器模型主要分为两种 xff0c 循环服务器 xff0c 并发服务器 循环服务器 xff1a 服务器在同一时间只能处理一个客户端的请求 并发服务器 xff1a 服务器在同一
  • STM32串口发送中断踩坑

    今天想测试下Modbus设备 xff0c 手上暂时没有串口转485的模块 xff0c 就打算用手上的stm32f042的开发板做个串口转485模块 如下所示 但是软件实际开发过程中 xff0c 遇到了麻烦 现象 在打开串口接收中断时 xff
  • 十六进制转十进制(c语言)

    输入的十六进制数 xff0c 通过字符型存放在a 数组中 首先将字符型转为int型 xff08 将a转为10等等 xff09 存放在b 数组中 在与10 n相乘在相加得出结果 include lt stdio h gt include lt
  • 对视频图像进行OSD叠加

    频叠加就是将图片和文字信息叠加到视频信号中 xff0c 如电视台的LOGO xff0c 电影的字幕 xff0c 电视机的菜单 xff0c 都是通过视频叠加的形式显示在视频图像中的 区别于用于专业影视编辑行业的字幕叠加器 xff0c 字符叠加
  • VS2019 C#开发手机App环境配置和开发

    参考链接 xff1a https www dianyuan com eestar article 1284 html 上位机开发人员 xff0c 想开发APP xff0c 从头学Java xff0c 需要花的时间成本太大 xff0c 最近网
  • 华为手机通过ADB禁止系统更新和卸载自带软件

    参考链接 xff1a 电源网 刚买华为手机最烦的是每天都提示系统更新 xff0c 就算设置不提醒 xff0c 过两天又开始提醒 xff0c 不死不休 xff0c 最后还是一次手误最终还是让它得逞了 xff0c 自动更新了 xff0c 下面就
  • C#利用Socket实现C/S模式通信

    参考链接 xff1a https www dianyuan com eestar article 1330 html 首先我们要了解一下几点内容 xff1a 1 Tcp IP协议是什么 xff1f 2 Socket是什么 xff1f 3 s
  • OpenCV 图像处理 灰度化、二值化与加噪

    参考链接 xff1a https www dianyuan com eestar article 1414 html 因为要自动检测裂缝 xff0c 就考虑到了图像的二值化处理 xff0c 虽然C 可以实现二值化处理 xff0c 但是是逐个
  • ROC-RK3328-CC 开发板开箱和上手指南

    参考链接 xff1a https www dianyuan com eestar article 1424 html RK3328处理器采用了64位A53架构四核处理器 xff0c 主频为1 5GHz xff0c GPU则采用了Mali 4
  • C#中AForge库调节视频亮度、饱和度等属性

    参考链接 xff1a https www dianyuan com eestar article 1479 html 之前工作中需要调节摄像头的亮度 饱和度调节 xff0c 之前一直通过调用AForge的调节控件才能调节 xff0c 虽然可
  • Ubuntu下安装和配置Qtcreator5.15版本

    Qt选择 在官方的声明中 xff0c Qt5 15是Qt5 x的最后一个LTS版本 xff0c 增加了即将在2020年底推出的Qt6的部分新特性 xff0c 为了之后的新版本有更好的兼容性 xff0c 选择了Qt5 15 下载Qt 对于普通
  • python 获取文件夹下的文件名操作(两种)

    一 相对路径 文件存储的想对路径路径 path 61 39 data 0 39 os walk 是一个生成器 xff0c 返回三个值 xff1a 根目录 xff0c 根目录下的目录和文件列表 folder 61 os walk path 3
  • 1、串口(UART/COM/TTL/RS232/RS485)

    目录 串口简介 串行通讯制式 UART 2 1 简介 2 2 电平标准 TTL RS232 RS485 2 3 电平转换 xff08 重点讲解RS232 TTL xff09 USB转TTL USB转RS232 USB转RS485 RS232
  • 集成Python和QML

    Qt包括QML作为一种声明性地描述用户界面并使用JavaScript作为其中的脚本语言的手段 可以编写完整的独立QML应用程 序 xff0c 或将它们与C 43 43 结合使用 PyQt5允许QML以完全相同的方式与Python集成 特别是
  • 个人小型管理服务器 SVN的安装和使用方法

    1 下载TortoiseSVN客户端 官网下载地址 Downloads TortoiseSVN 注意下载跟你电脑位数匹配 64位 32位 的安装包 在页面的下面你还可以找到语言包 如图 下载完成后 应该有这些安装包 如图 接下来我们安装To
  • Ubuntu20.04下安装QtCreator 5.14.2(安装/卸载/创建快捷键/添加收藏)

    原文链接 xff1a https www dianyuan com eestar article 2864 html 都是自己原创 xff0c 发这里提高下知名度 xff0c 也帮助需要的人 一 Qt和Qt Creator的区别 Qt是C
  • WPF中自定义双滑块Slider

    项目中遇到需要双滑块的情况 xff0c 可以网上的基本都是单滑块的样式和例子 xff0c 但是双滑块的很少 xff0c 后来终于在网上找到一个大神的帖子 xff0c 通过修改和完善终于符合自己的需求 xff0c 可后来再查看代码的时候好像又

随机推荐