当前位置: 首页 > news >正文

重庆付费网站推广旅游网页模板素材

重庆付费网站推广,旅游网页模板素材,微信开发者工具的介绍,2015做那些网站能致富一、寄存器结构体详解 对于STM32而言#xff0c;使用一个结构体将一个外设的所有寄存器都放到一起 二、修改驱动 1、添加清除bss段代码 2、添加寄存器结构体 在寄存器结构体中添加寄存器的时候一定要注意地址的连续性#xff0c;如果地址不连续的话#xff0c;要添加占位… 一、寄存器结构体详解 对于STM32而言使用一个结构体将一个外设的所有寄存器都放到一起 二、修改驱动 1、添加清除bss段代码 2、添加寄存器结构体 在寄存器结构体中添加寄存器的时候一定要注意地址的连续性如果地址不连续的话要添加占位数组 #define CCM_BASE        (0x020c4000) /*CCM外设基地址*/ /*CCM外设*/ typedef struct  {     volatile unsigned int CCR;     volatile unsigned int CCDR;     volatile unsigned int CSR;     volatile unsigned int CCSR;     volatile unsigned int CACRR;     volatile unsigned int CBCDR;     volatile unsigned int CBCMR;     volatile unsigned int CSCMR1;     volatile unsigned int CSCMR2;     volatile unsigned int CSCDR1;     volatile unsigned int CS1CDR;     volatile unsigned int CS2CDR; /* data */ }CCM_Type; #define CCM         ((CCM_Type*)CCM_BASE) 结构体指针 #include stdio.h #include stdlib.h //结构体化寄存器并将寄存器地址定义为结构体指针 //(1)编写外设结构体我定义了一个结构体结构体里的变量用于存放什么 typedef struct {//volatile的意义为什么需要搞清楚volatile unsigned int CCR;volatile unsigned int CCDR; }CCM_Type; //(2)定义寄存器的基地址 #define CCM_BASE (0X020C4000) //(3)定义访问指针此时结构体和基地址之间并无关系 #define CCM ((CCM_Type *)CCM_BASE) //能否理解为在CCM地址范围内分配了struct CCM_Type结构体变量进行存储呢 //CCM_Type是一个结构体CCM_BASE的数值指向,CCM_TPye结构类型表示什么CCM_Type结构体的指针指向 CCM_BASE吗 //例如:int *p; p的指针是int型 p是指针变量存放地址 /*网上找的一个感悟#define GPIOA((GPIO_typedef)GPIOA_BASE基地址结构体指针#define GPIOA((GPIO typedef*)GPIOA BASE此预处理将GPIOA变成GPIOtypedef类型的结构体指针默认指向了GPIOA的基地址首。在调用-指向不同结构体成员时指针就会根据成员变量类型的大小跳不同的步进进而访问到不同的成员地址对不同成员地址(其实就是GPIO的各功能寄存器)赋值处理就完成操作 GPIO。这是我最近理解结构体指针的感悟。结构体压入地址中 */ int main() {//定义结构体变量return 0; } 1 2 3 4 5 6 7 8 9 10 11 1 通过自己的理解我觉得这是一个最好不过的总结了值得反复读取几遍通过宏定义使用typedef定义的结构体其指针指向基地址读写寄存器状态结构体中变量保证与寄存器地址对齐。 2.#define IOMUXC_GPIO1_IO03_GPIO1_IO03 0x020E0068U, 0x5U, 0x00000000U, 0x0U, 0x020E02F4U 的解释 #define IOMUXC_GPIO1_IO03_GPIO1_IO03 0x020E0068U, 0x5U, 0x00000000U, 0x0U, 0x020E02F4U扩展到: 0x020E0068U, 0x5U, 0x00000000U, 0x0U, 0x020E02F4U 此段代码最好理解需要看函数 IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03,0); /* 复用为GPIO1_IO03 */函数参数通过define完成了参数的简化 * param muxRegister The pin mux register.* param muxMode The pin mux mode.* param inputRegister The select input register.* param inputDaisy The input daisy.* param configRegister The config register.* param configValue The pin config value.*/ static inline void IOMUXC_SetPinConfig(uint32_t muxRegister,uint32_t muxMode,uint32_t inputRegister,uint32_t inputDaisy,uint32_t configRegister,uint32_t configValue)通过这样即可理解为应该是常量替换要不参数太多了可读性变差整个0x02290000U, 0x5U, 0x00000000U, 0x0U, 0x02290044U理解成一个常量随着函数传参直接带入降低传参个数 初始化IO复用为GPIO引脚的代码和下面初始化GPIO的代码就是利用结构体指针控制寄存器。
http://www.w-s-a.com/news/517998/

相关文章:

  • 网站是否能够被恶意镜像wordpress占用
  • 经典设计网站网站等保测评怎么做
  • 重庆做网站公司贴吧廊坊公司快速建站
  • 海外贸易在什么网站做怎么排名到百度第一页
  • 线上注册公司是在哪个网站做高仿网站
  • 网站构架图网上推广平台哪个好
  • 公司网站首页图片素材vi设计的目的和意义
  • 网站的需求分析都有哪些内容济南营销型网站建设团队
  • 怎么选择优秀的网站建设公司生鲜网站开发
  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站
  • 城阳网站建设培训网站后台怎么上传文件
  • 重庆茂尔建设集团有限公司网站网页制作教程软件
  • 金湖建设工程质量监督网站高端网站建设公司哪里济南兴田德润实惠吗
  • 站酷设计网站官网入口文字设计seo网站推广工具
  • 专业移动网站建设网站建设软件dw
  • 摄影网站设计思想视觉传达毕业设计作品网站
  • 需要优化的网站有哪些设计装修app
  • 数据型网站建设东莞好的网站国外站建设价格
  • 网络营销方法有哪些举例seo应用领域有哪些
  • 建设银行官方网站官网做网站的专业叫什么
  • 矿区网站建设濮阳做网站的公司有哪些