1978|1

6822

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

从头文件开始一切 [复制链接]

MSP430的学习,作为一个初学者必须从两个地方学习一款芯片一个芯片手册一个及为头文件,而我喜欢从头文件开始。
       msp430fr5969.h 这个文件即为我们的芯片手册与C代码唯一的沟通。现在好像芯片公司越来越注重头文件的编写,似乎更加趋近于让工程师直接调用API函数,而MSP430也有库函数不过作为一个初学者再加上后期可能会经常接触这款芯片从简单而又复杂的寄存器学起未尝不可。
      #define DEFC(name, address) __no_init volatile unsigned char name @ address;
      上述一条为条件为一个宏定义 __no_init表示为初始化的变量而volatile表示禁止编译器优化此变量不懂可以百度一下。而@ address表示把这个变量分配在此地址处。
       剩下的为共同体定义具体大家可参考头文件
#define READ_ONLY_DEFCW(name, address) __no_init union \
{ \
  struct \
  { \
    volatile READ_ONLY unsigned char  name##_L; \
    volatile READ_ONLY unsigned char  name##_H; \
  }; \
  volatile READ_ONLY unsigned short   name; \
} @ address;
msp430的寄存器定义是基于共同体的而不同于51(基于指针)或者stm32(基于结构体),共同体和结构体最大的区别为结构体为连续分配内存而共同体则为所有成员公用一块内存,所以在msp430中可以给一个寄存器整体赋值及十六位也可以给个体赋值及高低八位。注明msp430是不支持位定义的不知道为啥可能是由于硬件部分为了降低功耗吧。所以在头文件中会有很多的掩码定义如下
#define BIT0                (0x0001u)
#define BIT1                (0x0002u)
而其意义只有用过了才能更加深入的了解。
剩下的部分就是一些寄存器的定义了具体可以参考芯片手册看看,好了此片就写到这里了。

最新回复

很好的帖子,不错,学习了。  详情 回复 发表于 2015-7-11 12:19
 
点赞 关注(2)

回复
举报

165

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
很好的帖子,不错,学习了。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表