其他分享
首页 > 其他分享> > msp430寄存器地址与宏定义位置

msp430寄存器地址与宏定义位置

作者:互联网

QQ群招募中:646258285(招募中,没几个人说话),
需要交流的朋友可以直接加我微信( DntBeliv )或QQ( 1121864253 )


这里以gpio代码为例说明如何在代码库与user guide中查看寄存器地址。

#include <msp430f6638.h>
/* main.c */
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;	// Stop watchdog timer
    P2DIR |= BIT7;
    int sgn0=-1;

    long index = 0;
    long time_unit = 25;//ms

    while(1){
        P2OUT |= BIT7;
        delay_ms(index);
        P2OUT &= ~BIT7;
        delay_ms(time_unit-index);
        if(index==0||index==(time_unit-1)){
            sgn0*=-1;
        }
        index = (index+sgn0)%time_unit;
    }
	return 0;
}

void delay_ms(unsigned int usNum){
    int i=0;
    while(i<usNum){
        __delay_cycles(1000);    //单位:ms
        i++;
    }
}

在这里我们查找P2OUT 的地址,安装Ctrl键点击该变量,可以跳转到其宏定义处,依次查找如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现我们并没有找到P2OUT 的地址,实际上这个地址在另一个文件里面,它是通过链接脚本通过编译器链接的,因此在代码中无法找到。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到寄存器地址为0x0203,那么在user guide中我们在哪里查找这个地址呢?

首先找到这个寄存器:
打开msp430f6638_user_guide.pdf如下
在这里插入图片描述
在这里插入图片描述
可以看到PAOUT_H的偏移地址为0x03,然后再看黄字,显示说基地址查看芯片手册的设备特性章节,那么打开msp430f6638_Datasheet.pdf
在这里插入图片描述
于是我们找到了这个地址0x0200+0x03 = 0x0203


· 关注公众号【技术斋】,发现更多精彩!

标签:index,int,地址,ms,寄存器,P2OUT,unit,msp430
来源: https://blog.51cto.com/u_15262460/2883015