4673|6

35

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

使用MSP430FR2000的一些心得与例程 [复制链接]

  前段时间,因为项目原因我接触了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)。所以并不能满足我的需要。这就造成了时间与精力上的浪费,希望大家别像我一样。

最新回复

老司机的建议总是很诚恳、实在  详情 回复 发表于 2019-2-28 09:17
 
点赞 关注(2)

回复
举报

1373

帖子

6

TA的资源

版主

沙发
 
1) 实时总结,这个习惯,很好!希望您能一直坚持下去,也希望您能多在坛子里多总结一些东西^_^
2) 给点小建议,可以把PWM端口设置成宏,或者指针,方便程序移植及代码复用

点评

老司机的建议总是很诚恳、实在  详情 回复 发表于 2019-2-28 09:17
 
个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
 

回复

6366

帖子

4901

TA的资源

版主

板凳
 
串口发不出东西,用示波器看看串口发送端有无数据。
430数据手册有一句话:端口即使被设为第二功能,端口的方向也不会自动配置,需要手动配置方向。所以看看你发送端口的方向配置。
 
 
 

回复

6366

帖子

4901

TA的资源

版主

4
 
懒猫爱飞 发表于 2019-2-27 23:16
1) 实时总结,这个习惯,很好!希望您能一直坚持下去,也希望您能多在坛子里多总结一些东西^_^
2) 给点 ...

老司机的建议总是很诚恳、实在
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

5
 
tiankai001 发表于 2019-2-28 09:17
串口发不出东西,用示波器看看串口发送端有无数据。
430数据手册有一句话:端口即使被设为第二功能,端口 ...

的确我只是复用了 没有设置输出输入方向 我学长给我提到过这个问题,但是我没注意 谢谢
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

6
 
懒猫爱飞 发表于 2019-2-27 23:16
1) 实时总结,这个习惯,很好!希望您能一直坚持下去,也希望您能多在坛子里多总结一些东西^_^
2) 给点 ...

谢谢你,我会注意的。
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

7
 
    P1SEL0 |= BIT6 | BIT7;

    UCA0CTLW0 = UCSWRST;

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

    UCA0MCTLW = 0x9200;

    UCA0CTLW0 &=~ UCSWRST;
    UCA0IE |= UCRXIE;


以上的程序是FR2111在32768HZ情况下发送9600波特率的串口设置。已经验证能正常使用。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 2/8 下一条
ADI &文晔 探索季第一站,邀您在活动帖跟帖,ADI资深工程师将与您一道寻求解决之道! ...
春晚,最出圈当属穿着棉马甲跳秧歌的机器人”秧Bot”。
转手绢、飞手绢、变换队形,精准度和稳定性甚至超越人类,这背后少不了电机控制技术。

查看 »

 
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
快速回复 返回顶部 返回列表