注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
yg776的个人空间 https://home.eeworld.com.cn/space-uid-999898.html [收藏] [复制] [分享] [RSS]
日志

使用MSP430FR2000的一些心得与例程

已有 549 次阅读2019-2-27 18:14

  前段时间,因为项目原因我接触了MSP430FR2000单片机。因为以前多数时间用的是MSP430F5529,所以在上手这款单片机时虽然比较简单,但是还是有一定的困难,因为FR2000与F5529的寄存器差别还是存在,网上又查不到相应的一些例程。只有自己看着以前的5529去写。以下是一些成功的程序:

PWM模块:
void PWM_Init(void)
{
    P2DIR |= BIT0 ;
    P2SEL0 |= BIT0 ;
    TB0CCR0 = 1000;
    TB0CCTL1 = OUTMOD_7;
    TB0CCR1 = 500;
    TB0CTL |= MC_1 + TBSSEL__ACLK + TBCLR;
}


时钟初始化模块:
void CLK_init(void)
{
    CSCTL3 |= FLLREFDIV__1 + SELREF_1;              //1分频 , 参考时钟REFCLK
    __bis_SR_register(SCG0);//关闭FLL
    CSCTL0 = 0x00;
    CSCTL1 |= DCORSEL_2 + 0;
    CSCTL2 |= FLLD__1 + 31;
    __bic_SR_register(SCG0);//开启FLL

    CSCTL4 |= SELMS__REFOCLK + SELA__REFOCLK ;
    CSCTL5 |= DIVM__1 + DIVS__1 + DIVA__1;
    CSCTL8 = 0;
}


串口模块(按道理说,我觉得这个是没问题的,但是串口发不出东西):
void USART_Init(void)
{
   P1SEL0 |= BIT2 + BIT3;

   UCA0CTLW0 = UCSWRST;

   UCA0CTLW0 |= UCSSEL__ACLK ;
   UCA0BR0 = 3;
   UCA0BR1 = 0x00;

   UCA0MCTLW = UCBRS3 + UCBRF0;

   UCA0CTLW0 &=~ UCSWRST;
   UCA0IE |= UCRXIE;

}


void Uart1send(u8 cm)
{
while(!(UCA0IFG & UCTXIFG));
UCA0TXBUF = cm;
}

void Uart1sendcom(u8 *cmd)
{
    while(*cmd != '\0')
    {
    Uart1send(*cmd);
    cmd++;
    }
}



还有一点非常非常重要的,因为我在选型这款单片机的时候就是看见了他的芯片手册写了RTC功能,但是在我把芯片买了板子打出来准备写RTC程序时,才发现这款单片机的RTC的真实名字是RTC_COUNTER,仅仅是用作计数器的RTC模块(注意:这里不是实时时钟RTC)。所以并不能满足我的需要。这就造成了时间与精力上的浪费,希望大家别像我一样。

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章